1003:I-number
这题就是注意一下是数字长度是100000.,而不是数字大小是100000.只要逐个字符处理即可,当单个字符大于等于10时,向前进位。
#include <iostream>
#include <cmath>
#include <stdio.h>
#include <algorithm>
#include <cstring>
using namespace std;
int max(int a,int b)
{
if(a<b)
return b;
else
return a;
}
char a[111111];
int b[111111];
int main()
{
int t , i ,sum = 0 ;
cin >> t ;
while(t--)
{
memset(b,0,sizeof(b));
sum = 0 ;
cin >> a ;
int l = strlen(a) ;
for(i = 0 ; i < l ; i ++)
{
b[i]=a[l - i - 1] - '0' ;
sum += b[i] ;
}
while(1)
{
b[0] ++ ;
sum ++;
int current = 0 ;
while(b[current] >= 10)
{
b[current] -= 10 ;
sum -= 10 ;
current ++ ;
b[current] ++ ;
sum ++ ;
}
l=max(l,current+1);
if(sum % 10 == 0)
{
for(i = l - 1 ; i >= 0 ; i--)
{
cout << b[i];
}
cout << endl ;
break;
}
}
}
return 0;
}