ACM篇:Codeforces 460 B -- Little Dima and Equation

来源:互联网 发布:华为云计算部门北京 编辑:程序博客网 时间:2024/05/01 10:23

枚举

#include <iostream>#include <cstdio>#include <vector>const int MAX_SUM = 81;const int MAX_ANS = 999999999;using namespace std;long long _pow(int x, int n);bool is_equal_sum_of_digits(long long x, int sum);int main(){    long long a, b, c;    long long  x;    vector<long long> ans;    scanf("%lld%lld%lld", &a, &b, &c);    for (int sum = 1; sum <= MAX_SUM; sum++)    {        x = b * _pow(sum, a) + c;        if (x > MAX_ANS) break;        if (x >= 1 && is_equal_sum_of_digits(x, sum))         {            ans.push_back(x);        }    }    printf("%d\n", ans.size());    for (vector<long long>::iterator it = ans.begin(); it != ans.end(); it++)    {        printf("%lld ", *it);    }    return 0;}long long _pow(int x, int n){    int v = 1;    for (int i = 1; i <= n; i++) v *= x;     return v;}bool is_equal_sum_of_digits(long long x, int sum){    int sum_of_digits = 0;    while (x)    {        sum_of_digits += x % 10;        x /= 10;    }    return (sum_of_digits == sum);}
0 0
原创粉丝点击