蓝桥杯之高精度算法

接下来废话不多说 ,大家看下蓝桥杯的原题截图:
蓝桥杯之高精度算法_第1张图片
一个很简单的编程题,接下来这个是我的代码:

#include
#define MAX 3000
int main()
{
    int arr[MAX]={0};
    int i=0,len=0;
    int num=0,num_cpy=0,flag=0;
    scanf("%d",&num);
    num_cpy=num;
    while(num)//把num中的数全部放到数组arr中去
    {
        arr[i]=num%10;
        num/=10;
        i++;
    }
    num=num_cpy;
    num=num-1;
    for(num; num>0; num--)
    {
        for(i=0; iif(flag)//判断是否有进位,如果有则flag>0,否则flag=0
            {
                arr[i]+=flag;
            }
            if(arr[i]>=10)
            {
                flag=arr[i]/10;
                arr[i]%=10;
            }
            else
            {
                flag=0;
            }
        }
    }
    for(i=MAX;i>0;i--)
    {
        if(arr[i]==0&&arr[i-1]!=0)
        {
            len = i-1;//表示数字的长度
            break;
        }
    }
    while(len>=0)
    {
        printf("%d",arr[len]);
        len--;
    }
    system("pause");
    return 0;
}

结果截图:
蓝桥杯之高精度算法_第2张图片

你可能感兴趣的:(简单C编程)