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\n",a); } else { a[al-1]+=sum; //数a增大了一次 printf("%s\n",a); } } return 0; }