您的位置:首页 > 其它

[Project Euler] Problem 30

2011-06-29 10:57 295 查看
Surprisingly there are only three numbers that can be written as the sum of fourth powers of their digits:

1634 = 14 + 64 + 34 + 44
8208 = 84 + 24 + 04 + 84
9474 = 94 + 44 + 74 + 44

As 1 = 14 is not a sum it is not included.

The sum of these numbers is 1634 + 8208 + 9474 = 19316.

Find the sum of all the numbers that can be written as the sum of fifth powers of their digits.

这道题没有太多技巧可言,直接穷举法

由于9**5*7 < 1000000;所以满足条件的数不可能是7位或以上的数

我们从2穷举到 9**5*6;

#include <iostream>
#include <cmath>
usingnamespace std;

bool isGood(int);

int main(){
int sum =0;
for(int i=2; i<pow(9,5)*6; i++){
if(isGood(i)){
sum += i;
}
}
cout << sum <<endl;

}

bool isGood(int num){
int tmp =0;
int backup = num;
while(backup >0){
tmp += pow(backup%10,5);
backup /=10;
}
return tmp == num;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: