求100的阶乘,用C语言中的数组怎么来求啊?能不能用数组模拟乘法来算,再用上递归来写一下程序
答案:3 悬赏:60 手机版
解决时间 2021-11-24 23:08
- 提问者网友:蔚蓝的太阳
- 2021-11-23 23:12
求100的阶乘,用C语言中的数组怎么来求啊?能不能用数组模拟乘法来算,再用上递归来写一下程序
最佳答案
- 五星知识达人网友:孤独的牧羊人
- 2021-11-24 00:34
以上两位把100阶乘想的太简单了,如果不是100,是1000的阶乘呢?
C里面什么类型能放的下那么大的数字么?
是unsigned long long 还是 什么?恐怕都不行吧?
#define MAXLEN 100
#define MAXSUM 300//存放结果的数组最大长度
#include
#include
main()
{
int i,j,k,n,sum,s;
int a[MAXSUM];
for(i=0;i a[i]=0; //数组赋初值
a[0]=1;
for(i=1;i<=MAXLEN;i++)
{
for(j=MAXSUM-1;j>=0;j--)
{
if(a[j]!=0)
{
n=j+1;
break;
}
}//确定阶乘结果保存到数组中
for(k=0;k a[k]=a[k]*i;
//对存入数组中的数进行乘法运算
for(k=0;k {
sum=a[k];
if(sum/100>0)
{
a[k]=sum%100;
a[k+1]=a[k+1]+sum/100;
}
}//进位
}
for(s=n;s>=0;s--)
{
if(a[s]>=10)
printf("%d",a[s]);
else printf("0%d",a[s]);
}//显示结果
printf("\n");
getch();
}
编译通过~~~
C里面什么类型能放的下那么大的数字么?
是unsigned long long 还是 什么?恐怕都不行吧?
#define MAXLEN 100
#define MAXSUM 300//存放结果的数组最大长度
#include
#include
main()
{
int i,j,k,n,sum,s;
int a[MAXSUM];
for(i=0;i
a[0]=1;
for(i=1;i<=MAXLEN;i++)
{
for(j=MAXSUM-1;j>=0;j--)
{
if(a[j]!=0)
{
n=j+1;
break;
}
}//确定阶乘结果保存到数组中
for(k=0;k
//对存入数组中的数进行乘法运算
for(k=0;k
sum=a[k];
if(sum/100>0)
{
a[k]=sum%100;
a[k+1]=a[k+1]+sum/100;
}
}//进位
}
for(s=n;s>=0;s--)
{
if(a[s]>=10)
printf("%d",a[s]);
else printf("0%d",a[s]);
}//显示结果
printf("\n");
getch();
}
编译通过~~~
全部回答
- 1楼网友:思契十里
- 2021-11-24 02:39
#include
void main()
{
int i,t;
t=1;
i=2;
while(i<=100)
{
t=t*i;
i=i+1;
}
printf("%d\n",t);
}
void main()
{
int i,t;
t=1;
i=2;
while(i<=100)
{
t=t*i;
i=i+1;
}
printf("%d\n",t);
}
- 2楼网友:渊鱼
- 2021-11-24 01:25
#include
void main()
{
int a[100]={0},i;//对数组全部赋值为零
long fun=1;
for(i=1;i<=100;i++)
{
a[i-1]=i;
fun *=a[i-1];
}
printf("%ld",fun);
}
不知道这样用数组求是否符合你意?
void main()
{
int a[100]={0},i;//对数组全部赋值为零
long fun=1;
for(i=1;i<=100;i++)
{
a[i-1]=i;
fun *=a[i-1];
}
printf("%ld",fun);
}
不知道这样用数组求是否符合你意?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯