阶乘之和 输入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