#include <stdio.h>
int main()
{
int i, m1 = 1, sum1 = 0 ; // 每一项阶乘等于前一项乘本身所在的项数
// 1! = 1 2! = 1! * 2 3! = 2! * 3 4! = 3! * 4 ;
for (i = 1 ; i <= 20 ; i++ ) // 一共有20 个数相加,进行20次累加
{
m1 = m1 * i ; // 每一项的数 为 (上一项 * i)
sum1 = sum1 + m1; // 把每一项进行累加
}
printf(" 1! + 2! + 3! + 4! + 5! +.....+ 20! = %d\n",sum1) ;
return 0 ;
}
方法二:用递归的方法求该题
#include<stdio.h>
int main()
{
int f(int n) ; // 2! + 3! + 4!
int i , sum = 0 ;
for (i = 1 ; i <= 20 ; i++)
{
sum = sum + f(i) ;
}
printf("1! + 2! + 3! + 4! + 5! + .....+ 20! %d\n",sum ) ;
return 0 ;
}
int f(int n)
{
int x;
if( n == 0)
x = 1 ;
else
x = n * f( n - 1 ) ; // 反复调用 int f( int n )函数然后返回出去。
return x;
}