直接模拟递增过程即可。。。
#include <cstdio> #include <cstring> #include <iostream> #include <vector> #include <algorithm> using namespace std; typedef long long lld; const lld mod = 1000000007; const int MAXN = 100010; vector<int>vv[MAXN]; char s[MAXN]; int main() { int T; scanf("%d",&T); while(T--) { //string s; cin>>s; strrev(s); int len=strlen(s); while(1) { s[0]++; for(int i=0;i<len-1;i++) { if(s[i]-'0'>=10) { s[i]-=10; s[i+1]++; } else break; } if(s[len-1]-'0'>=10) { s[len-1]-=10; s[len]='1'; s[++len]='\0'; } int t=0; for(int i=0;i<len;i++) t+=s[i]-'0'; if(t%10==0) break; } strrev(s); cout<<s<<endl; } }