试给出求1*2*3*4*5*…*1000的算法(*表示乘号“×”)
答案:2 悬赏:0 手机版
解决时间 2021-02-03 01:04
- 提问者网友:情歌越听越心酸
- 2021-02-02 15:00
试给出求1*2*3*4*5*…*1000的算法(*表示乘号“×”)
最佳答案
- 五星知识达人网友:轮獄道
- 2021-02-02 15:14
1000!的结果是非常大的,因此不能直接运用编译器内置的数的类型,而应考虑用数组来表示大数。
这里给出c语言形式的算法:
#include
int main()
{
int i,j,t,p; //p用于存储进位,t表示当前数据在数组中的位置
int result[1000]; //用于存储计算结果
t=p=0;result[0]=1;
for(j=1;j<=1000;j++)
{
for(i=0;i<=t;i++)
{
result[i]=result[i]*j+p;
p=result[i]/100000;
result[i]%=100000;
}
if(p)
{
t++;
result[t]=p;
p=0;
}
} for(i=t-1;i>=0;i--)
printf("%05d",result[i]);
return 0;
}
这里给出c语言形式的算法:
#include
int main()
{
int i,j,t,p; //p用于存储进位,t表示当前数据在数组中的位置
int result[1000]; //用于存储计算结果
t=p=0;result[0]=1;
for(j=1;j<=1000;j++)
{
for(i=0;i<=t;i++)
{
result[i]=result[i]*j+p;
p=result[i]/100000;
result[i]%=100000;
}
if(p)
{
t++;
result[t]=p;
p=0;
}
} for(i=t-1;i>=0;i--)
printf("%05d",result[i]);
return 0;
}
全部回答
- 1楼网友:一秋
- 2021-02-02 16:52
#include
int main()
{
int s=1,p=2;
while(p<=1000)
{
s=s*p;
p++;
}
printf("%d\n",s);
return 0;
}
int main()
{
int s=1,p=2;
while(p<=1000)
{
s=s*p;
p++;
}
printf("%d\n",s);
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯