#include <stdio.h>
long jiecheng(int x)
{
long int i,k=1
for(i=1i<=xi++)
k=k*i
return k
}
int main()
{
long int j,k=0
int i
for(i=1i<=20i++)
{
j=jiecheng(i)
k+=j
}
printf("%ld\n",k)
}
扩展资料:
使用其他方法实现求1到20阶乘的和:
public class Main{
public static void main(String[] args){
int i,j
int sum=0
int a=1
for(i=1i<=20i++){
for(j=1j<=ij++){
a*=j
}
sum+=a
}
System.out.print("sum=1!+2!+3!+...+20!="+sum)
}
}
/****程序描述:求求1~20的阶乘之和。
**算法思路:先求出每一项的阶乘值,然后将所有项的阶乘值相加。
*/
#include <stdio.h>
#define N 20
typedef unsigned long long uInt64 //自定义类型
//求出每一项阶乘值的函数
uInt64 fact(int n)
{
int i
uInt64 s
for(i=s=1i<=ni++)
s*=i //从1开始循环累加相乘
return s
}
int main()
{
uInt64 s
int i
for(i=1,s=0i<=Ni++)
s+=fact(i) //从第1项开始循环累加每一项的阶乘值
printf("1!+2!+3!+……+20!=%llu\n",s)
return 0
}
亲测可用
long jiecheng(int x)
{
long int i,k=1
for(i=1i<=xi++)
k=k*i
return k
}
int main()
{
long int j,k=0
int i
for(i=1i<=20i++)
{
j=jiecheng(i)
k+=j\t
}
printf("%ld\n",k)
}
输出的结果是2561327494111820313
扩展资料:
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。
亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
计算方法:
大于等于1:
任何大于等于1 的自然数n 阶乘表示方法:n! = 1×2×3×...×(n-1)n或n! = n×(n-1)!
0的阶乘:0!=1。
参考资料:百度百科——阶乘