您的位置:

计算12的阶乘c语言,一到二十阶乘的和的算法c语言

本文目录一览:

任意输入一个数,求其阶乘并输出

用科学计算器就可以,比如12 [n!] 即显示479001600。

#includestdio.h

int main()

{

int i,n;

double temp;

while(1)

{

scanf("%d",n);

temp =1;

if(n0){printf("error");return 0;}

if(n==0||n==1);

else{

for(i=1;i=n;i++)

temp*=i;

}

printf("%.f\n",temp);

}

}

扩展资料:

通常我们所说的阶乘是定义在自然数范围里的(大多科学计算器只能计算 0~69 的阶乘),小数科学计算器没有阶乘功能,如 0.5!,0.65!,0.777!都是错误的。但是,有时候会将Gamma 函数定义为非整数的阶乘,因为当 x 是正整数 n 的时候,Gamma 函数的值是 n-1 的阶乘。

参考资料来源:百度百科-n!

怎样用C++求12以上的阶乘

我觉得即便是long也不能解决你的问题,这个要用到高精度来解决。所谓高精度,简单来说就是把你的结果折成几段存于一个数组中,并且在计算的时候维护数组的变化。

这个要克服的问题主要是你的数据类型(不管是long还是int等等)都是有限长度的,无法表示超出这个长度的数。你要做的就是模拟计算机维护数据,处理好相乘、进位等等操作。

俺也没实际写过这类的程序,主要就是因为处理的数据通常没那么大。你可以自己试试吧,这个貌似应该不是很难。

C语言求阶乘

其实这个只能算到12的阶乘,因为13的阶乘等于6227020800,它已经大于2的31次方了,也就是超过了int所能表示的最大值了(溢出),所以你可以把int

改为double.

#include

stdio.h

#include

stdlib.h

double

f(int

n)

{

if(n==0||n==1)

return

1;

return

n*f(n-1);

}

int

main()

{

int

n,k,i;

printf("请输入一个数:");

scanf("%d",k);

for(i=1;i=k;i++)

{

printf("第%d个数为:",i);

scanf("%d",n);

printf("%d!=%f\n",n,f(n));

}

}

我把你写的稍微改了一下,你看看。

C语言中阶乘怎么输?

1、不是直接输入n!,需要一定的算法才可以实现。具体方法是,首先打开编辑器,准备好空白的C语言文件:

2、在编辑器中输入代码,这里所谓 n 的阶乘,就是从 1 开始乘以比前一个数大 1 的数,一直乘到 n。C语言中可利用循环解决,可以假设循环变量为 i,初值为 1,i 从 1 变化到 n;依次让 i 与 sum 相乘,并将乘积赋给 sum,最后输出sum的值就可以了:

3、在编辑器中运行程序,随意输入一个数,按下回车键,即可打印出阶乘的结果来:

c语言如何求一个数的阶乘

n的阶乘就是从1到的累积,所以可以通过一个for循环,从1到n依次求积即可。

参考代码:

#include "stdio.h"

int main() {

int n,i,s=1;

scanf("%d",n);

for(i=1;i=n;i++)//for循环求累积

s=s*i;

printf("%d\n",s);

return 0;

}

/*

运行结果:(例如求5的阶乘)

5

120

*/

扩展资料: 

return用法:

return返回一个数值的意思就是把return表达式后面表达式的值返回给调用他的函数。举个例子:

int sum(int i,int j)

{

return i+j;

printf("这个语句不会被执行,因为该子函数执行到上面的return语句就无条件结束了");

}

main()

{

int a=10,b=11,c;

c=sum(a,b);

printf("%d",c);

}