Codeforces Round #441 (Div. 2, by Moscow Team Olympiad) C. Classroom Watch

时间:2023-12-27 15:19:31

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 ;
}