永发信息网

试给出求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;   
}
全部回答
  • 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;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯