网站建设资讯

NEWS

网站建设资讯

c语言用函数15的阶乘 c语言1到5的阶乘

输入一个15以内的整数,求阶乘的 c语言源代码

思路:定义一个函数fun(n)求n的阶乘,接着键盘输入一个整数,调用fun函数输出该数的阶乘。

创新互联专注于企业网络营销推广、网站重做改版、石阡网站定制设计、自适应品牌网站建设、H5响应式网站商城开发、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为石阡等各大城市提供网站开发制作服务。

参考代码:

#include"stdio.h" 

long fun(int n){

long sum =1;

int i;

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

sum*=i;

return sum;

}

int main()

{

int n; 

scanf("%d",n);

printf("%ld",fun(n));

return 0;

}

/*

运行结果:

10

3628800

*/

c语言中 用while语实现程序阶乘15!

#include stdio.h

int main()

{

int a=100;

double num=1.0;

//while 循环相乘实现阶乘

while(a0)

{ num *= a;

a--;

}

printf("100!的结果:%le\n",num);

//for循环相乘实现阶乘

num=1;

for(a=1;a=100;a++)

{ num *= a;}

printf("100!的结果:%le\n",num);

return 0;

}

用c语言写的一个求阶乘的程序,最大智能求15的阶乘,该怎么改扩大范围,求大侠来帮忙

这个有点麻烦了. 跟普通的法子不大一样.

你要用数组来模拟运算.

我这边有一个大整数阶乘的程序,你试试看可能看懂!

不行就百度去,大整数阶乘做关键字,很多的.

#include "stdio.h"

#include "stdlib.h"

#include "memory.h"

#include "math.h"

#include "malloc.h"

void calcFac(int n)

{

int i,j,head,tail;

int blkLen=(int)(n*log10((n+1)/2)); //计算n!有数数字的个数

blkLen+=4; //保险起见,多加4位

if (n1)

{

printf("%ld!=0\n",n);

return;

}

char *arr=(char *)malloc(blkLen);

if (arr==NULL)return ;

memset(arr,0,sizeof(char)*blkLen);

head=tail=blkLen-1;

arr[tail]=1;

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

{

int c=0;

for (j=tail; j=head; j--)

{

int prod=arr[j] * i +c;

arr[j]=(char)( prod % 10);

c= prod / 10;

}

while (c0)

{

head--;

arr[head]=(char)(c % 10);

c/=10;

}

}

for (i=head; i=tail; i++)

printf("%c",arr[i]+'0');

printf("\n");

free(arr);

}

int testCalcFac()

{

int n;

while ( scanf("%d",n)!=EOF)

{

if (n==0)

return -1;

calcFac(n);

}

}

int main(int argc, char* argv[])

{

testCalcFac();

return 0;

}

编程计算15的阶乘

#includeiostream

#includevector

#includestring

#includealgorithm

using namespace std;

string add(const string a,const string b);

string multiply(const string a,char b);

string multi(const string a,const string b);

string factorial(int n);

int main()

{

coutfactorial(15);

return 0;

}

string add(const string a,const string b)

{

string sh,lo,r; int g=0;

if(a.size()b.size())

{

sh=string(a.size()-b.size(),'0');

sh+=b; lo=a;

}

else

{

sh=string(b.size()-a.size(),'0');

sh+=a; lo=b;

}

r.resize(sh.size());

for(int i=sh.size()-1;i=0;--i)

{

r[i]=sh[i]+lo[i]-48+g;

if(r[i]'9')

{

r[i]-=10;

g=1;

}

else

{

g=0;

}

}

if(g==1)

r="1"+r;

return r;

}

string multiply(const string a,char b)

{

string r;

r.resize(a.size()); int g=0;

if(b=='0')

return "0";

if(b=='1') //加快计算

return a;

for(int i=a.size()-1;i=0;--i)

{

r[i]=(a[i]-48)*(b-48)%10+48+g;

if(r[i]'9')

{

r[i]-=10;

g=((a[i]-48)*(b-48))/10+1;

continue;

}

g=((a[i]-48)*(b-48))/10;

}

if(g!=0)

r.insert(0,string(1,g+48));

return r;

}

string multi(const string a,const string b)

{

string r("0");

string *c=new string[b.size()];

for(int i=0;ib.size();++i)

{

c[i]=multiply(a,b[b.size()-1-i])+string(i,'0');

r=add(r,c[i]);

}

delete[] c;

return r;

}

string factorial(int n)

{

char b[7];

string r="1";

for(int i=1;in+1;++i)

{

itoa(i,b,10);

r=multi(r,b);

}

return r;

}


分享名称:c语言用函数15的阶乘 c语言1到5的阶乘
文章地址:http://njwzjz.com/article/dddhggp.html