代码
C语言
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//SUM(1!~20!).c
#include<stdio.h>
int main()
{
int i=1;
long long sum=0,j=1;
printf("SUM(1!~20!)\n=0");
for(;i<21;i++)
{
j *= i;
sum += j;
printf("+%lld",j);
}
printf("\n=%lld\n",sum);
return 0;
}
C++语言
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//SUM(1!~20!).cpp
#include<iostream>
using namespace std;
int main()
{
int i=1;
__int64 m=0,j=1;
cout<<"SUM(1!~20!)"<<endl<<"=0";
for(i;i<21;i++)
{
j*=i;
m+=j;
cout<<"+"<<j;
}
cout<<endl<<"="<<m<<endl;
return 0;
}
输出结果:2561327494111820213
其他
__int64
与long long
,以及 .c(C语言) 与 .cpp(C++语言) 的异同可自行研究。- 一开始用 int 整型变量时,在没让程序 printf 出每个数的阶乘得数的情况下,求出结果是 268040729,可通过部分信息证伪,正确结果:
- 肯定以“3”结尾,即个位数字为3。
- 肯定是3的倍数。
- 至少是17位数(实际是19位)。