题解 | #输出水仙花数#
输出水仙花数
https://www.nowcoder.com/practice/dabaf13009ef4d0cbf22302fd6a530a6
#include <iostream> #include <cmath> #include <vector> using namespace std; int main() { // write your code here...... vector<int> tri(10); for (int i = 0; i < 10; i++) { tri[i] = pow(i, 3); } for (int i = 100; i < 1000; i++) { int num{i}, sum{0}; while (num != 0 and i >= sum) { sum += tri[num % 10] ; num /= 10; } if (i == sum) { cout << i << endl; } } return 0; }
这里三次方运算是高频操作,所以应该用一个数组存储 0-9 的三次方。