趣百科

C语言阶乘新算法

编辑:Simone 2025-04-19 15:43:06 607 阅读

C语言阶乘新算法

虽然还是用递归来进行运算,但是,由于有些数字运算量大,容易溢出,所以采用数组来存放数据

首先打开VC++6.0

选择文件,新建

选择C++ source file 新建一个空白文档

首先声明头文件,和定义常量

#include

#include

#define MAXARRAY 1000/*定义数组的最大位数*/

定义一个数组,存放数据,声明变量

用循环来进行判断是否输入数据,然后进行计算

while(1)

{

/*输入要计算的整数*/

while(1)

{

printf("Please input the integer to compute:\n");

scanf("%d",&n);

if(n<0)

{

printf("Please input an integer greater -1\n");

continue;

}

else

break;

}

/*初始化结果数组和进位数组*/

fac=1;

add=0;

for(j=1;j<=MAXARRAY-1;j++)

{

fac[j]=0;

add[j]=0;

}

top=0;

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

{

/*计算进位数组add*/

for(j=0;j<=top;j++)

{

fac[j]=fac[j]*i;

if(j==0)

add[j]=fac[j]/10;

else

add[j]=(fac[j]+add[j-1])/10;

}

/*更新top的值*/

if(add[top]>=1)

top++;

/*计算结果数组fac*/

for(j=0;j<=top;j++)

{

if(j==0)

fac[j]=fac[j]%10;

else

fac[j]=(fac[j]+add[j-1])%10;

}

}

/*输出结果数组fac*/

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

for(j=top;j>=0;j--)

{

printf("%d",fac[j]);

}

printf("\n\n");

printf("Please input 'c' to continue.\n");

ch=getch();

if(ch!='c')

break;

}

return 0;

}

运行结果

版权声明:本站【趣百科】文章素材来源于网络或者用户投稿,未经许可不得用于商用,如转载保留本文链接:https://www.qubaik.com/life/180639.html

相关推荐