2013暑假杭电多校赛

来源:互联网 发布:淘宝联盟pid在哪里 编辑:程序博客网 时间:2024/06/06 03:07
/*题目的大意:输入一个数x,找一个比x大的且各个位数之和是10的倍数解法:大数模拟将x一个个往上加*/#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <string>#include <vector>#include <map>#include <queue>using namespace std;char s[100005];int sum,aa;int main(){    int t;    int n,m,l;    int q;    scanf("%d",&t);    getchar();    while(t--)    {        q = 0;        gets(s);        l = strlen(s);        sum = 0;        for(int i=0; i<l; i++)        {            sum += s[i] - '0';        }        if(s[l-1] == '9')            {                sum++;                s[l-1] = '0';                m = l - 2;                while(m>=0&&s[m] == '9')                {                    sum++;                    s[m] = '0';                    m--;                }                if(m>=0)                {                    s[m] = s[m] + 1;                }                else                {                    q = 1;                }                sum++;            }            else            {                sum++;                s[l-1] = s[l-1] + 1;            }        while(sum%10!=0)        {            if(s[l-1] == '9')            {                sum++;                s[l-1] = '0';                m = l - 2;                while(m>=0&&s[m] == '9')                {                    sum++;                    s[m] = '0';                    m--;                }                if(m>=0)                {                    s[m] = s[m] + 1;                }                else                {                    q = 1;                }                sum++;            }            else            {                sum++;                s[l-1] = s[l-1] + 1;            }        }        if(q == 1)        {            printf("1%s\n",s);        }        else        {            printf("%s\n",s);        }    }    return 0;}

原创粉丝点击