I-number

B - I-number

Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u
Appoint description: 

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
 
注意前导零,坑得一B。。。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int sum;
int s[1000005];
int main(){
	int t,x,len;
    char s[1000005];
	scanf("%d",&t);
	while(t--){
        s[0]='0',s[1]='0';
        scanf("%s",s+2);
        len=strlen(s);
        sum=0;
        for(int i=0;i<len;i++){
           s[i]-='0';
           sum+=s[i];
        }
	    do{
    	   int i=len-1;
    	   while(s[i]==9){
   		     sum-=9;
   		     s[i--]=0;
    	   }
    	   s[i]++;
    	   sum++;
    	}while(sum%10!=0);
    	
    	for(int i=1;i<len;i++){
            if(i==1&&s[i]==0)continue;
            printf("%d",s[i]);
        }
        printf("\n");
	}
	return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值