循环~n!求和
题目描述
求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。
输入
n
输出
和
1 #include<stdio.h> 2 int main(){ 3 int n; 4 long long int sum=0; 5 int tem=1; 6 scanf("%d",&n); 7 // int i,j; 8 // for( i=1;i<=n;i++){ 9 // for(j=1;j<=i;j++){ 10 // j*=j; 11 // } 12 // //printf("%d\n",j); 13 // sum=sum+j; 14 // } 15 // printf("%d",sum); 16 int i=1; 17 while(i<=n){ 18 tem=tem*i; 19 sum=sum+tem; 20 i++; 21 } 22 printf("%lld",sum); 23 return 0; 24 }
solution:
1 每后一个阶乘都在前一个的基础上多乘了一个本轮的数字,循环直接乘每一轮多出来的那个数字不用从头开始
2 注意结果变量用的是long long型