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;
}
本文提供了一种解决CodeForces-876C问题的有效方法,该问题要求找到满足特定条件的所有整数x。通过枚举和简单的数学分析,程序能够快速准确地找出解或确定不存在解。
2746

被折叠的 条评论
为什么被折叠?



