阶乘之和 输入n,计算S=1!+2!+3!+…+n!的末6位(不含前导0)。n≤10 6 ,n!表示 前n个正整数之积。

阶乘之和
输入n,计算S=1!+2!+3!+…+n!的末6位(不含前导0)。n≤10 6 ,n!表示
前n个正整数之积。
样例输入:
10
样例输出:

package demo;

import java.util.Scanner;
public class demo02 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n=in.nextInt();
long sum=0;
for (int i = 1; i <=n; i++) {
sum=sum+jie2(i);
}
String str=Long.toString(sum);
str=str.substring(str.length()-6,str.length());
sum=Integer.parseInt(str);
System.out.println(sum);
}
// public static int jie(int num){
// if (num==1)
// return 1;
// else
// return jie(num-1)*num;
// }
public static long jie2(int num2){
long sum=1;
for (int i = 1; i <=num2; i++) {
sum=sum*i;
String str=Long.toString(sum);
if (str.length()>6) {
str=str.substring(str.length()-7,str.length());
sum=Integer.parseInt(str);
if (sum==0) {
return sum=0;
}
}
}
return sum;
}
}

  

37913

上一篇:HTML 求阶乘之和


下一篇:随手练——POJ - 2676 数独 (回溯法)