

//水仙花数问题
//由玩家输入一个最大值,这个最大值位于[0,1000]
//求出从0至这个最大值的所有水仙花数,并对每个数进行编号
int Num = 0;
int Nummax = 0;
int A = 0; int B = 0; int C = 0;
int D = 0; int E = 0; int F = 0;
int No = 1;
cout << "Please input a Number as MAX Value: " << endl;
cin >> Nummax;
while (Nummax > 1000 || Nummax <= 0) {
cout << "Your input is invalid, please input a number less than 1000" << endl;
cout << "Please input a Number as MAX Value: " << endl;
cin >> Nummax;
}
if (Nummax > 0 && Nummax <= 1000) {
do {
A = Num / 100;
B = (Num - (100 * A)) / 10;
C = Num % 10;
Num++;
D = pow(A, 3);
E = pow(B, 3);
F = pow(C, 3);
if ((D + E + F) == (Num - 1)) {
cout << "Num " << No << " = " << Num - 1 << endl;
No++;
}
} while (Num <= Nummax);
}