题目链接:http://codeforces.com/contest/876/problem/C
题意:给你一个正整数n,让你找出所有的x,使得x加上x的个位数的和等于n
解析:其实你可以理解成是x+y等于n,只是恰好y很灵性而已,如果直接找x,其实蛮难找的,但是y的范围确实有限定的,最多每一位都去9,所以你可以选择,枚举y,然后判断x是否合法即可,输出答案一定要降序!!!
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
int n;
scanf("%d",&n);
vector<int>ans;
for(int i=1;i<100;i++)
{
int tmp = n-i;
int cnt = tmp;
while(tmp)
{
cnt += tmp%10;
tmp/=10;
}
if(cnt==n)
ans.push_back(n-i);
}
sort(ans.begin(),ans.end());
printf("%d\n",ans.size());
for(int i=0;i<ans.size();i++)
printf("%d\n",ans[i]);
return 0;
}