刷题记录8
水仙花数的判断
题目描述
打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=13+53+3^3。
输入
无
输出
输出每一个水仙花数,一个数占一行
代码
#include<iostream>
using namespace std;
int main()
{
int num;
int a,b,c;
cout<<"水仙花数:"<<endl;
for(num=100;num<=999;num++)//数字范围为100-999
{
a=num%10;//num的个位数字
b=num/10%10;//num的十位数字
c=num/100;//num的百位数字
if(num==(a*a*a+b*b*b+c*c*c))//水仙花数的判断条件
cout<<num<<endl;
}
return 0;
}
解题思路
题目中的条件水仙花数是三位数,所以for循环的时候i从100到999就好;
定义三个数a,b,c,分别放这个三位数的百位,十位,个位;
再用一个if语句判断abc的三次方是否等于num,如果等于,输出num就好;