“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如: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;
}
一名计算机科学与技术的女大学生~