计算整数n的阶层,要求计算结果最长可达50位

c语言代码:

#include <stdio.h>
#define N 50
void qiujieceng(int a)
{
int i,j,k,n;
int data[N];
int bit=1;


for(i=1;i<N+1;i++)
data[i]=0;
data[1]=1;
for(i=1;i<a+1;i++)//遍历每个数的阶数
{
for(j=1;j<bit+1;j++)//计算阶数:每一位乘以要求的阶数,结果仍然在本位上
{
data[j]*=i; 
} 
for(j=1;j<bit+1;j++)//遍历每一位,看是否有进位的需要
{
if(data[j]>10)
{
  for(n=1;n<bit+1;n++)//当数组中所表示的数超过一位的时候,考虑将十位上的数字向前移位
  {
if(data[bit]>10)//根据最高位是否需要进位,判断位数是否需要增加。
  bit++;
data[n+1]+=data[n]/10;//当最高位不需要进位的时候,这个步骤仍然需要
data[n]=data[n]%10;//低位进位
  }
}
}    
 printf("%d!=",i);
  for(k=bit;k>0;k--)//先输出高位,所以k=bit
  {
       printf("%d",data[k]);
  }
 printf("\n");
} 
}
int main()
{
int m;
printf("请输入您要求的数m:\n");
scanf("%d",&m);
    qiujieceng(m);
return 0;
}


执行结果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值