发布网友 发布时间:2022-04-24 20:23
共4个回答
热心网友 时间:2023-10-09 19:03
n的值不能超过13,否则会因为数据溢出而导致结果错误。
#include <stdio.h>
int main()
{
long i,n,m,sum=0
scanf("%d",&n);
for(i=m=1;i<=n;i++);
{
m*=i;
sum+=m;
}
printf("%d\n",sum);
return 0;
}
例如:
#include <stdio.h>
/* 通过递归计算一个数的回阶乘 */
int factorial(int num)
{
if (num==1)
return 1;
else
return (num * factorial(num - 1));
}
int main()
{
int i,n;
long sum = 1;
scanf("%d",&n);
for (i = 2;i <= n;++i)
sum += factorial(i);
printf("%ld\n",sum);
return 0;
}
扩展资料:
由于正整数的阶乘是一种连乘运算,而0与任何实数相乘的结果都是0。所以用正整数阶乘的定义是无法推广或推导出0!=1的。即在连乘意义下无法解释“0!=1”。
通常我们所说的阶乘是定义在自然数范围里的(大多科学计算器只能计算 0~69 的阶乘),小数科学计算器没有阶乘功能,如 0.5!,0.65!,0.777!都是错误的。但是,有时候会将Gamma 函数定义为非整数的阶乘,因为当 x 是正整数 n 的时候,Gamma 函数的值是 n-1 的阶乘。
参考资料来源:百度百科-阶乘
热心网友 时间:2023-10-09 19:03
#include<stdio.h>热心网友 时间:2023-10-09 19:04
我刚在做这道题呢,你可以看看这个例题,稍微改一下就行了:
热心网友 时间:2023-10-09 19:05
#include <stdio.h>