hdu 4608 I-number 模拟

来源:互联网 发布:求平年闰年的简便算法 编辑:程序博客网 时间:2024/06/07 13:42

就是处理大数的问题。先用char保存后转存为int型b[],记得要把b[0]留出来

#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<vector>#include<cmath>#include<cctype>using namespace std;int main(){    char a[100001];    int b[100001];    int T;    cin>>T;    int tmp,len,flag,len2;    long long int count;    while(T--)    {        memset(a,0,sizeof(a));        memset(b,0,sizeof(b));        cin>>a;        len=strlen(a);        flag=0;        int k=len2=1;        for(int i=0;i<len;i++)        {            b[k++]=a[i]-'0';            len2++;        }        if(len2 == 2)        cout<<"19";        else        while(flag<50)        {            count=0;            flag++;            tmp=len2-1;            b[tmp]=b[tmp]+1;            while(b[tmp]>9)            {                b[tmp]=b[tmp]-10;                b[--tmp]++;            }            for(int i=0;i<len2;i++)                count+=b[i];            if(count%10 == 0)            {                if(b[0]!=0)                {                    for(int i=0;i<len2;i++)                    cout<<b[i];                }                else                {                   for(int i=1;i<len2;i++)                    cout<<b[i];                }                break;            }        }        cout<<endl;    }}