刷题5:Digit Generator

tech2025-01-10  7

题目链接:https://vjudge.net/problem/UVA-1583 题解:水题,题目大意是给出数,求出另一个数与他每一位数之和等于这个数并输出,输出满足条件的最小值。如果没有这个数输出0。 算法是每一位数最大值是9,所以只需要从n-1循环到n-位数9即可 代码: #include #include #include using namespace std; int main() { int n;//输入数的个数 int k;//输入数的大小 int num;//输入数的位数 cin>>n; for(int i=0;i<n;i++) { cin>>k; num=0; int kk=k;//代替的k的个数 while(kk!=0) { kk/=10; num++; } int ii,sum; for(ii=k-num9;ii<k;ii++) { int j=ii; sum=0; while(j!=0) { int q=j%10; j/=10; sum+=q; } sum+=ii; if(sumk) break; } if(sumk) cout<<ii<<endl; else cout<<“0”<<endl; } return 0; }

最新回复(0)