题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
#include<iostream>
using namespace std;
//思路:所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。
void isShuixianhua(int n)
{
int g, s, b;//个、十、百位
b = n / 100;
s = (n - 100 * b) / 10;
g = n - 100 * b - 10 * s;
if (b * b * b + s * s * s + g * g * g == n)
cout << n << ' ';
return;
}
int main()
{
for (int i = 100; i <= 999; i++)
isShuixianhua(i);
return 0;
}