CodeForces-876C Classroom Watch
标签:水题
/*
题意:对每一个n,找x。要求n == x + sum(x各位数字的和)。
若存在x,输出所有x;否则,输出0。(1 <= n <= 10^9)
思路:由1 <= n <= 10^9 可知,sum(x)最多为81。枚举n - 81至n判断即可。
*/
#include <stdio.h>
int ans[1000005];
int sum(int n) //求sum(x)
{
int ans = 0;
while(n)
{
ans += n % 10;
n /= 10;
}
return ans;
}
int main()
{
int n;
while(scanf("%d", &n) != EOF)
{
int k = 0;
for(int i = n - 9 * 9; i <= n; i++)
{
if(i < 1) continue; //
else if(n == sum(i) + i) ans[k++] = i;
}
printf("%d\n", k);
if(k) for(int i = 0; i < k; i++) printf("%d\n", ans[i]);
}
return 0;
}