hdu 4068 I-number

#include<stdio.h>
#include<string.h>
char a[100100];
int al;
int mysum() //求各位和
{
    int i,sum=0;
    al=strlen(a);
    for(i=0; i<al; i++)
        sum+=(a[i]-'0');
    return sum%10;
}
int main()
{
    int _case,n,i,j;
    int jiwei=0,sum;
    scanf("%d",&_case);
    while(_case--)
    {
        memset(a,0,sizeof(a));
        scanf("%s",a);
        sum=10-mysum();//保证 y>x
        if(sum+a[al-1]>'9')
        {
            a[al-1]='0';
            jiwei=1;
            for(i=al-2; i>=0; i--)//增大数a
            {
                a[i]+=jiwei;
                if(a[i]>'9')
                {
                    a[i]=a[i]-10;
                    jiwei=1;
                }
                else
                {
                    jiwei=0;
                    break;
                }
            }
            sum=10-(mysum()+jiwei);
            //printf("%d#",sum);
            if(sum!=10)a[al-1]+=sum;//数a增大两次
            if(jiwei)printf("%d",jiwei);
            printf("%s
",a);
        }
        else
        {
            a[al-1]+=sum;            //数a增大了一次
            printf("%s
",a);
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/XDJjy/p/3211046.html