m0_62399270
2021-10-29 13:45
采纳率: 100%
浏览 32

求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溢出了

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题