谭浩强C++课后习题5——输出“水仙花数”
题目描述:输出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身,例如,153是一个水仙花数,因为153=111+555+333.
算法思路:
因为“水仙花数”是3位数,因此从100开始循环至999,个位数为原数%10,百位数为原数/100,十位数为原数/10-百位数*10。
#include<iostream>
#include<cmath>
using namespace std;
int main() {
int ge, shi, bai;
for (int i = 100;i <= 999;i++) {
ge = i % 10;
bai = i / 100;
shi = i / 10 - bai * 10;
if ((pow(ge, 3) + pow(shi, 3) + pow(bai, 3)) == i)
cout << i << endl;
}
return 0;
}
运行结果: