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