codeforces #262 DIV2 B题 Little Dima and Equation

题目地址:

这题乍一看没思路,但是仔细分析下会发现,s(x)是一个从1到81的数,无论x是多少。所以可以枚举1到81,这样就转化成了一个一元一次方程,直接求解x就可以了。这时候还要判断x是否在1到10^9之间,并且它的各位数之和是s(x)。

这题脑残了两次。。。第一次是写成了<=10^9。。然后发现错误后,,就又改了回来。。但是发现10^9是不可能的,。。。。

代码如下:

#include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>#include <ctype.h>#include <algorithm>#include <queue>using namespace std;#define LL __int64LL aa[100];int main(){LL n, a, b, c, ans=0, i, y, zz, j;LL x, z;scanf("%I64d%I64d%I64d",&a,&b,&c);for(i=1;i<=81;i++){zz=1;for(j=1;j<=a;j++)zz*=i;x=zz*b+c;y=0;z=x;while(z){y+=z%10;z/=10;}if(y==i&&x>=1&&x<1e9){aa[ans++]=x;}}printf("%I64d\n",ans);for(i=0;i<ans;i++){printf("%I64d ",aa[i]);}return 0;}

积极的人在每一次忧患中都看到一个机会,

codeforces #262 DIV2 B题 Little Dima and Equation

相关文章:

你感兴趣的文章:

标签云: