题目链接:https://vjudge.net/problem/UVA-1583
题意:给出一个数N,判断最小的数x使x+(x各位数字的和)=N
题解:这是一个暴力求解题,不过有技巧,x各位数字的和最多是9*位数,所以循环从N-位数*9开始循环即可
ac代码:
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n,m,k,ans;
cin>>n;
for(int k=0; k<n; k++)
{
cin>>m;
int i,sum,mm=m,wei=0,flag=1;
while(mm!=0)
{
wei+=1;
mm/=10;
}
for(i=m-wei*9-1; i<m; i++)
{
int j=i;
sum=0;
while(j!=0)
{
sum+=j%10;
j/=10;
}
if(sum+i==m)
{
flag=0;
break;
}
}
if(flag==0)
cout<<i<<endl;
else
cout<<"0"<<endl;
}
return 0;
}