求13的13次方的最后3位数

来源:百度知道 编辑:UC知道 时间:2024/06/28 04:48:32
用C语言写出

main()
{int i,n;
long s=1;
for(i=1;i<=13;i++)
s*=13;
n=s%1000;
printf("%d",n);
}

根据数学公式(1000a+b)^n,与b^n(b为3 位数整数)的后三位值相同因此可以程序可以写成:
<br><br>#include<stdio.h>
<br><br>main()
<br><br>{int i,n;
<br><br>unsigned long s=1;
<br><br>for(i=1;i<=13;i++) {
<br><br>s*=13;
<br><br>if(s>1000) s=s%1000;
<br><br>}
<br><br>n=s%1000;
<br><br>printf("%d",n);
<br><br>}
<br><br>在turbo3.0运行的结果是253
<br>回答二楼的
其实你可以定义一个数组比如1*100(int)的数组,你让数组的第一个数保存该数的后面的几个数字,第二个数保存倒数第二的几个,依次类推,你就的可以保存一个很大的数了,下面有一个例子也是计算一个很大的数,它的处理方法可以参考以一下,首先申明程序不是我写的,是从百度知道里找到的。(网友gudaohu提供)
<br>
<br>#define MAXLEN 100
<br>#define MAXSUM 100
<br>#include <stdio.h>
<br>#inclu