HDOJ 4608 I-number

2014-11-24 11:23:55 · 作者: · 浏览: 0

暴力枚举。。。

I-number

Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2803 Accepted Submission(s): 1065


Problem Description The I-number of x is defined to be an integer y, which satisfied the the conditions below:
1. y>x;
2. the sum of each digit of y(under base 10) is the multiple of 10;
3. among all integers that satisfy the two conditions above, y shouble be the minimum.
Given x, you're required to calculate the I-number of x.
Input An integer T(T≤100) will exist in the first line of input, indicating the number of test cases.
The following T lines describe all the queries, each with a positive integer x. The length of x will not exceed 10 5.

Output Output the I-number of x for each query.
Sample Input
1
202

Sample Output
208

Source 2013 Multi-University Training Contest 1
#include 
  
   
#include 
   
     #include 
    
      #include 
     
       using namespace std; const int maxn=200100; char str[maxn]; bool ck(char str[]) { int r=0; int n=strlen(str); for(int i=0;i
      
       =n) str[i]='0'; int t=str[i]-'0'; if(t+c<10) { str[i]++; c=0; break; } else { str[i]='0'+t+c-10; c=1; } } return true; } int main() { int T_T; scanf("%d",&T_T); while(T_T--) { memset(str,0,sizeof(str)); scanf("%s",str); reverse(str,str+strlen(str)); while(PlusOne(str)) if(ck(str)) break; reverse(str,str+strlen(str)); printf("%s\n",str); } return 0; }