c语言求阶乘函数
#include 《stdio.h》
main()
{
long n,sum=1;//10 以上的阶乘就比较大了
int i;
printf(“请输入你要求的阶乘:“)
scanf(“%d“,&n);//先输入要求的数
for(i=n;i》0;i–)//乘到1为止
{
sum*=i;
}
printf(“%d != %d“,n,sum);
return 0;
}
C语言中阶乘怎么输
1、不是直接输入n!,需要一定的算法才可以实现。具体方法是,首先打开器,准备好空白的C语言文件:
2、在器中输入代码,这里所谓 n 的阶乘,就是从 1 开始乘以比前一个数大 1 的数,一直乘到 n。C语言中可利用循环解决,可以假设循环变量为 i,初值为 1,i 从 1 变化到 n;依次让 i 与 sum 相乘,并将乘积赋给 sum,最后输出sum的值就可以了:
3、在器中运行程序,随意输入一个数,按下回车键,即可打印出阶乘的结果来:
c语言求阶乘的函数
阶乘: 阶乘是基斯顿·卡曼(ChristianKramp,1760~1826)于1808年发明的运算符号,是数学术语。 一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且有0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。 亦即n!=1×2×3×…×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。 C语言 在C语言中,使用循环语句可以很方便的求出阶乘的值,下面介绍一个很简单的阶乘例子。(因为网上多数是比较麻烦的方法) 【计算出“1!+2!+3!+……+10!”的值是多少?】 #include《stdio.h》 intmain() { intx; longj=1,sum=0; for(x=1;x《=10;x++) { j*=x; sum+=j; } printf(“1!+2!+…+10!=%ld\n“,sum); return0; } /*结果:4037913*/ Pascal中programtest; varn:longint; functionjc(n:longint):qword; beginifn=0thenjc:=1elsejc:=n*jc(n-1)end; beginreadln(n);writeln(jc(n))end. C++中 #include《iostream》 usingnamespacestd; longlongf(intn) { longlonge=1; if(n》0) e=n*f(n-1); cout《《n《《“!=“《《e《《endl; returne; } intmain() { intm=20; f(m); return0; } 以上使用C++11标准 也可以利用积分求浮点数阶乘: #include《cstdio》 #include《cmath》 doubles; constdoublee=exp(1.0); doubleF(doublet) { returnpow(t,s)*pow(e,-t); } doublesimpson(doublea,doubleb) { doublec=a+(b-a)/2; return(F(a)+4*F(c)+F(b))*(b-a)/6; } doubleasr(doublea,doubleb,doubleeps,doubleA) { doublec=a+(b-a)/2; doubleL=simpson(a,c),R=simpson(c,b); if(fabs(L+R-A)《=15*eps)returnL+R+(L+R-A)/15.0; returnasr(a,c,eps/2,L)+asr(c,b,eps/2,R); } doubleasr(doublea,doubleb,doubleeps) { returnasr(a,b,eps,simpson(a,b)); } intmain() { scanf(“%lf“,&s); printf(“%lf\n“,asr(0,1e2,1e-10)); return0; }
c语言用函数求n的阶乘的和
法/步骤
第一步、编程的第一步就是写头文件,对于初学者来说,只写一个头文件就可以了,即#include《stdio.h》
第二步、就是定义我们的变量,我们需要定义一个n,用来求他的阶乘,sum用来保存结果,i用来循环
第三步、就是把sum初始化,为1.千万不要为0,保证后面的结果不出问题。
第四步、就是输入一个n,用来求n的阶乘,别忘了在前面提示一下。
第五步、就是利用for循环来求阶乘。
第六步、就是调用printf(:);函数来输出阶乘结果。
拓展资料
定义
n!=1×2×3…xn
n!=X×(X-1)×(X-2)…×1
1751年,欧拉以大写字母M表示m阶乘 M=1x2x3…x…m
1799年,鲁非尼在他出版的方程论著述中,则以小写字母π表示m阶乘。而在1813年,高斯则以Π(n)来表示n阶乘。而用来表示n阶乘的方法起源于英国,但仍未能确定始创人是谁。直至1827年,由于雅莱特的建议而得到流行,现在有时也会以这个符号作为阶乘符号。
当n较大时,直接计算n!变得不可能,这时可通过斯特灵(Stirling)公式计算近似算或取得大小范围。
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语言阶乘函数
你的函数原型是这个int jiecheng(int a);调用的却是 s=jiecheng(); 没有传参进去,所以报错,应该改为:
int s;
int result;
scanf(“%d“,&s);
result=jiecheng(s);
另外,还要做一个特殊处理,比如:当参数为零时,输出为1;当参数为-1时,输出0;当为负数时,提示不正确
C语言中如何编程计算阶乘
常见的有两种:
递归版本:
int Fac(int n){
if(n==0) return 1;
return n*Fac(n-1);
}
还有一种是循环版:
int ans=1;
for(int i=1;i《=n;i++) ans*=i;
测试方法:
#include《stdio.h》
int Fac(int n){
if(n==0) return 1;
return n*Fac(n-1);
}
int main(){
int n;
while(scanf(“%d“,&n)!=EOF){
int ans=1;
for(int i=1;i《=n;i++) ans*=i;
printf(“%d %d\n“,ans,Fac(n));
}
return 0;
}
有个值得注意的地方:阶乘时,数增大的很快,在n达到13时就会超过int的范围,此时可以用long long或是 __int64来存储更高精度的值,如果还想存储更高位的,需要用数组来模拟大数相乘。
c语言中调用fact函数求阶乘详细格式
#include《stdio.h》int fact(int n)。
{int ans=1,i;if(n《=1) return 1;for(i=1;i《=n; ++i)ans*=i;return ans;}
int main(){int n,ans;scanf(“%d“,&n);ans=fact(n);printf(“ans = %d\n“,ans);return 0;}
扩展资料:
顺序结构:
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子里面的水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c;执行结果是a = 5,b = c = 3如果改变其顺序。
写成:a = b; c = a; b =c;则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算、输出三步曲的程序就是顺序结构,例如计算圆的面积。
其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。
C语言中有计算阶乘的函数吗 不是自己写,,,是那种可以直接调用的函数
#include《stdio.h》
voidmain(){
intn,result;
printf(“请输入一个数字,求它的阶乘:“);
scanf(“%d“,&n);
result=calc(n);
printf(“结果:%d“,result);
}
intcalc(intn){
intresult=1,i;
for(i=n;i》=1;i–)
result=result*i;
returnresult;
}
扩展资料
C语言函数的调用
函数定义好以后,要被其它函数调用了才能被执行。C语言的函数是能相互调用的,但在调用函数前,必须对函数的类型进行说明,就算是标准库函数也不例外。
标准库函数的说明会被按功能分别写在不一样的头文件中,使用时只要在文件最前面用#include预处理语句引入相应的头文件。如前面使用的printf函数的说明是放在文件名为stdio.h的头文件中。
c语言怎么用递归调用函数的方法求n的阶乘
1、打开VC6.0软件,新建一个C语言的项目:
2、接下来编写主程序,首先定义用来求阶乘的递归函数以及主函数。在main函数里定义变量sum求和,调用递归函数fact(),并将返回值赋予sum,最后使用printf打印sum的结果,主程序就编写完了:
3、最后运行程序,观察输出的结果。以上就是C语言使用递归求阶乘的写法: