cccccct_1 2020-11-24 14:31 采纳率: 94.1%
浏览 54
已结题

c语言2的次方,看着很简单,问题是总是输出高的就出0了

输入一个整数n,输出2的n次方。

总是溢出,输100直接为0,大佬帮帮

  • 写回答

1条回答 默认 最新

  • 「已注销」 2020-11-24 17:05
    关注
    #include<stdio.h>
    int main()
    {
        int n,i,j;
        int ret[1000]={1,0},len=1,plus;
        scanf("%d",&n);
        for(i = 0 ; i < n ; i++)
        {
            for(plus=j = 0 ; j < len ; j++)
            {
                plus += ret[j]*2;
                ret[j] = plus%10;
                plus/=10;
            }
            if(plus)
            {
                ret[len++]=plus;
            }
        }
        for(i=len-1;i>=0;i--)
        {
            printf("%d",ret[i]);
        }
        printf("\n");
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月16日
  • 已采纳回答 5月8日