2024-03-03 05:22:27 | 我爱编程网
long fac(int k) //
{
long result=1; //
int i;
for (i=2;i<=k;i++) //
{
result*=i;
}
return result; //
}
void main()
{
int m;
long s; //
do
{
scanf("%d",&m); //
}
while (m<0);
s=fac(m);
printf("%d!=%ld",m,s);
}
头文件的部分省去了,修改的地方在代码中用//标出了。
扩展资料:
由于正整数的阶乘是一种连乘运算,而0与任何实数相乘的结果都是0。所以用正整数阶乘的定义是无法推广或推导出0!=1的。即在连乘意义下无法解释“0!=1”。
给“0!”下定义只是为了相关公式的表述及运算更方便。
参考资料来源:
百度百科-阶乘我爱编程网
1、首先定义一个ns数组用来存储n!的各个位数上的数值,利用for循环给ns加入10000个0值,以方便后面直接根据index对数组进行操作。然后定义length作为“数组的长度”(有真实数值的而非自动添加的0)也即n!的结果的位数。
2、res=n。然后写入forrange循环,具体代码如下:foriinrange(1,n):接下来在for循环当中进行计算并且返回res,具体代码如下:res*=ireturnres。
3、计算N的阶乘。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中按照“product=F”的格式输出阶乘的值F,请注意等号的左右各有一个空格。题目保证计算结果不超过双精度范围。
4、前两个都封装成了函数。最后一个直接运行的。没有定义函数。中间那个问题,是因为你忘记做类型转换,你试着运行这个number=int(number)。应该就对了。
我爱编程网(https://www.52biancheng.com)小编还为大家带来python写一个函数,求阶乘并输出其式子的相关内容。
def jiechen(num):
if num > 1:
num = num * jiechen(num-1)
else:
num = 1
return num
print(jiechen(5))
2024-01-05 14:11:24
2025-02-01 20:24:39
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01