【题目描述】
求100∼999中的水仙花数。若三位数ABC,$ABC=A^3+B^3+C^3$,则称ABC为水仙花数。
例如153,$1^3+5^3+3^3=1+125+27=153$,则153是水仙花数。
【输入】
无
【输出】
由小到大输出满足条件的数,每个数占一行。
假设需要输出两个数:119,100。需要输出以下形式:
100
119
【输入样例】
无
【输出样例】
无
#include<iostream>
#include<cmath>
using namespace std;
bool func(int a) {
int sum = 0, temp = a;
for (int i = 0; i < 3; i++) {
sum += pow((a % 10), 3);
a /= 10;
}
if (temp == sum) {
return true;
}
else {
return false;
}
}
int main()
{
for (int i = 100; i < 1000; i++) {
if (func(i))
{
cout << i << endl;;
}
}
return 0;
}非常经典的水仙花题目。把数字对10取模即可得到个位数字,然后用数字除以10,由于数字是int型,会舍去小数点,也就丢弃了各位数字,然后重复这个操作,就能得到十位数字,以此类推。