求13的13次方的最后三位数:
由于计算机的整数范围限制,用直接的方法可能得不到正确结果,所以要转换思
路:我们发现乘积的最后三位的值只和乘数和被乘数的后三位有关,与乘数和被乘数
的高位无关。利用这一定律,可以简化程序。
package net.csdn.liwei;
public class Factorial13_Last3 {
public static void main(String[] args) {
int last;
Factorial_Last3 factorial=new Factorial_Last3();
last=factorial.calculate(13);
System.out.println("last ="+last);
}
}
class Factorial_Last3{
int n,last=1; //要计算的是n的n次方,last是尾数
int m=1000;
public int calculate(int num){
n=num;
for(int i=0;i<n;i++){
last=n*last%m; //让n*尾数,然后取后三位
}
return last; //返回尾数
}
}