一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
递归实现(以及n的阶乘和)
int fun(int n) {
if (n == 1) {
return 1;
}
else {
return n * fun(n-1);
}
}
int main() {
int a,i,sum=0;
printf("请输入n的值:");
scanf("%d", &a);
printf("%d的阶乘是:%d", a, fun(a));//计算n的阶乘;
//扩展到计算n的阶乘之和;
for (i = 1; i <= a; i++) {
sum += fun(i);//;累加阶乘;
printf("\t%d的阶乘是%d\n", i, fun(i));
}
printf("%d的阶乘之和为%d\n", a, sum);
return 0;
}
^0^
^0^
for循环实现
int main() {
int i, j, n, sum = 0,num = 0;
printf("请输入计算阶乘和的n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
for (j = 1; j <= i; j++) {
num += j;
}
printf("\t%d的阶乘为%d\n", i, num);//n的阶乘;
sum += num;//n的阶乘的和
}
return 0;
}
^0^
^0^
算法!!!