水仙花数的定义:
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。
C++代码:
#include<iostream>
using namespace std;
int main()
{
int a, b, c, snum = 100;
cout << "三位数中为水仙花的有:" << endl;
do
{
snum++;
a = (snum / 100);//求百位
b = snum / 10 % 10;//求十位
c = snum % 10;//求个位
if (a*a*a+b*b*b+c*c*c == snum)
//C++里不能直接用a^3,需要一个个相乘或者在头文件里加入:#include<math.h>,再由pow(a,3)求
{
cout << snum << endl;
}
} while (snum < 999);
system("pause");
return 0;
}
代码说明:
- 代码中a,b,c求百位,各位,十位是应用了C++中int类型变量的特性,例如: 153/100=1.53,但这是整型(int)变量,小数点后的被抹去,所以就有:153/100=1.
- “%”为求余符号,如:(153/10)%10=15%10=(1余5)=5
- 关于a^3这种错误用法,注释中已说明。