m0_62399270 2021-10-29 13:45 采纳率: 90.9%
浏览 40
已结题

求n的阶乘(高精度)

为什么这串代码到33都是对的,34以后就都是错的了



#include<stdio.h>
int main()
{

    int n,i,a[999]={0},len=1,j;
    a[0]=1;
    scanf("%d",&n);
    for(i=1;i<n;i++)
    {
        int c=0;
        for(j=0;j<len;j++)
        {
            a[j]=a[j]*(i+1)+c;
            c=a[j]/10;
            a[j]=a[j]%10;

        }
        if(c!=0)
        {
            len++;
            a[j]=c;
        }

    }
    for(i=len-1;i>=0;i--)
        printf("%d",a[i]);

    return 0;
}
  • 写回答

1条回答 默认 最新

  • 於黾 2021-10-29 13:57
    关注

    数太大了你就定义成long,或者更大的类型
    int溢出了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月7日
  • 已采纳回答 10月30日
  • 创建了问题 10月29日

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R