http://codeforces.com/contest/876/problem/C
题意:
现在有一个数n,它是由一个数x加上x每一位的数字得到的,现在给出n,要求找出符合条件的每一个x。
思路:
n最大1e9,那么9个9最多才加81,所以最多枚举100次,就可以找到所有符合条件的数。
代码:
#include <stdio.h>
#include <string.h>
#include <vector>
using namespace std; vector<int> v; int main()
{
int n; scanf("%d",&n); if (n >= )
{
for (int i = n - ;i <= n;i++)
{
int tmp = i; int sum = ; while (tmp)
{
sum += tmp % ;
tmp /= ;
} if (i + sum == n)
{
v.push_back(i);
}
}
}
else
{
for (int i = ;i <= n;i++)
{
int tmp = i; int sum = ; while (tmp)
{
sum += tmp % ;
tmp /= ;
} if (i + sum == n)
{
v.push_back(i);
}
}
} printf("%d\n",v.size()); for (int i = ;i < v.size();i++)
printf("%d%c",v[i],i == v.size() - ? '\n' : ' '); return ;
}