永发信息网

数据结构编程 求100以内任何数的阶乘

答案:1  悬赏:0  手机版
解决时间 2021-04-12 19:27
  • 提问者网友:孤山下
  • 2021-04-12 10:29

用的三种方法

要求1:在 TC 编译器里运行

2:输入100以内任何数的阶乘,例如:1!18!87!99!100!等等

3:是输入任何数的阶乘后再出来结果,不是直接出来结果。

4:麻烦写出编译思想或方法

5:请附上运行后的图

急啊~~!!!!! 谢谢!!!!!

最佳答案
  • 五星知识达人网友:十鸦
  • 2021-04-12 11:39
#include"stdio.h"
#include"string.h"
int main()
{
char n[10];
int a[2000]={0},b[2000]={0},c[2000]={0},temp;
int i,j,k,len;
scanf("%s",&n);
temp=atoi(n);
b[0]=1;
len=1;
for(i=1;i<=temp;i++)
{
sprintf(n,"%d",i);
for(j=strlen(n)-1;j>=0;j--)
a[strlen(n)-1-j]=n[j]-'0';
for(j=0;j<len;j++)
for(k=0;k<strlen(n);k++)
{
c[j+k]+=b[j]*a[k];
c[j+1+k]+=c[j+k]/10;
c[j+k]%=10;
}
if(c[j+k-1]!=0)
len=j+k;
else
len=j+k-1;
for(j=0;j<len;j++)
b[j]=c[j];
memset(c,0,sizeof(c));
}
for(i=len-1;i>=0;i--)
printf("%d",b[i]);
printf("\n");
}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯