原题:
问题描述
153是一个非常特殊的数,它等于它的每位数字的立方和,即 153 = 13 + 5 3+ 33。编程求所有满足这种条件的三位十进制数。
输出格式
按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。
解题思路:
对于这么小的计算量,直接枚举出所有的结果是人为方面最优的解决方案。
代码实现:
// #include <bits/stdc++.h>
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int sum = 99;
for (int i = 1; i < 10; ++i) // 注意百位只能从 1 开始
{
for (int j = 0; j < 10; ++j)
{
for (int k = 0; k < 10; ++k)
{
if (++sum == pow(i, 3) + pow(j, 3) + pow(k, 3))
cout << sum << endl;
}
}
}
return 0;
}
运行结果:
153
370
371
407