问题描述:
Sn=1!+2!+3!+4!+5!+…+n!Sn=1!+2!+3!+4!+5!+…+n!,其中n,1是一个正整数,求Sn的末6位。n,1是一个正整数,求Sn的末6位。
输入
1个正整数n(1 \leq n \leq 10000)n(1≤n≤10000)
输出
1个整数,表示SnSn的末6位。高位的0不输出。
样例
输入
2
输出
3
Java代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner rd= new Scanner(System.in);
int n = rd.nextInt();
int i = 1, s = 1, sum = 0;
while (i <= n) {
s *= i;
s %= 1000000;
sum += s;
i++;
}
sum%= 1000000;
System.out.println(sum);
}
}
C代码:
#include <stdio.h>
int main(){
int a;
scanf("%d",&a);
int s=1;
int sum=0;
int i=1;
while(i<=a){
s=s*i;
s=s%1000000;
sum=sum+s;
i++;
}
sum=sum%1000000;
printf("%d",sum);
}
C++代码:
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int sum=0;
if(n>25)n=25;
for(int i=1;i<=n;i++)
{ int s=1;
for(int j=1;j<=i;j++)
{
s*=j;
s%=1000000;
}
sum+=s;
sum%=1000000;
}
printf("%d",sum);
return 0;
}