2013暑假杭电多校赛
来源:互联网 发布:淘宝联盟pid在哪里 编辑:程序博客网 时间:2024/06/06 03:07
/*题目的大意:输入一个数x,找一个比x大的且各个位数之和是10的倍数解法:大数模拟将x一个个往上加*/#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <string>#include <vector>#include <map>#include <queue>using namespace std;char s[100005];int sum,aa;int main(){ int t; int n,m,l; int q; scanf("%d",&t); getchar(); while(t--) { q = 0; gets(s); l = strlen(s); sum = 0; for(int i=0; i<l; i++) { sum += s[i] - '0'; } if(s[l-1] == '9') { sum++; s[l-1] = '0'; m = l - 2; while(m>=0&&s[m] == '9') { sum++; s[m] = '0'; m--; } if(m>=0) { s[m] = s[m] + 1; } else { q = 1; } sum++; } else { sum++; s[l-1] = s[l-1] + 1; } while(sum%10!=0) { if(s[l-1] == '9') { sum++; s[l-1] = '0'; m = l - 2; while(m>=0&&s[m] == '9') { sum++; s[m] = '0'; m--; } if(m>=0) { s[m] = s[m] + 1; } else { q = 1; } sum++; } else { sum++; s[l-1] = s[l-1] + 1; } } if(q == 1) { printf("1%s\n",s); } else { printf("%s\n",s); } } return 0;}