2013 Multi-University Training Contest 1 I-number
水题,注意不要去掉前导0……
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<string>
#include<vector>
#define ll __int64
#define pi acos(-1.0)
using namespace std;
char an[100005];
int m;
int fun()
{
int sum=0,i;
for(i=0;i<m;i++)
sum+=an[i]-'0';
return sum;
}
void inverse()
{
int i,j;
for(i=0;i<m/2;i++)
swap(an[i],an[m-i-1]);
}
void add()
{
int i,j,t=0;
an[0]=(an[0]+1);
t=(an[0]-'0')/10;
an[0]=(an[0]-'0')%10+'0';
for(i=1;i<m;i++)
{
if(t==0) break;
an[i]+=t;
if(an[i]-'0'>9)
{
t=(an[i]-'0')/10;
an[i]=(an[i]-'0')%10+'0';
}
else t=0;
}
if(t!=0)
an[m++]=t+'0';
}
int main()
{
int i,t;
cin>>t;
while(t--)
{
cin>>an;
m=strlen(an);
inverse();
while(1)
{
add();
if(fun()%10==0)
break;
}
for(i=m-1;i>=0;i--)
cout<<an[i];
cout<<endl;
}
return 0;
}