“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1³+5³+3³
我们一般的写法:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main(){
for(int i = 100; i <= 999; i++){
int digit = i % 10; //个位
int tenDigit = i / 10 % 10; //十位
int threeDigit = i / 100; //百位
if(i == digit * digit * digit + tenDigit * tenDigit * tenDigit + threeDigit * threeDigit * threeDigit){
cout << i << endl;
}
}
return 0;
相对数字拆分来说,数字组合的效率高一丶丶。
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main(){
//i是百位数,j是十位数,k是个位数
for(int i = 1; i <= 9; i++){
for(int j = 0; j <= 9; j++){
for(int k = 0; k <= 9; k++){
int total = i * 100 + j * 10 + k;
if(i * i * i + j * j * j + k * k * k == total){
cout << total << endl;
}
}
}
}
return 0;
}