C++实现三位数的水仙花数
题目要求:
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
例如:1^3 + 5^3+ 3^3 = 153
请利用do…while语句,求出所有3位数中的水仙花数
实现思路 |
---|
打印100~999的三位数 |
增加if判断,若满足水仙花数,则输出 |
利用while来不断执行条件语句 |
参考代码如下:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int number = 100;
do
{
int a = 0;
int b = 0;
int c = 0;
a = number % 10;//获取个位数
b = number / 10 % 10;//获取十位数
c = number / 100;//获取百位数
double d = pow(a,3) + pow(b,3) + pow(c,3);
if (d == number)
{
cout << number << endl;
}
number++;
} while (number < 1000);
system("pause");
return 0;
}
这里用了pow()来实现数的次幂功能,因为pow得到的是double类型的数据,如果用int 定义d,会涉及到一个强制转换,但也没错,这里为了省事直接double d 了。