要打印水仙花数,首先就要知道什么是水仙花数:
例如:
153 是 3 位数
那么 1 ^ 3 + 5 ^3 + 3 ^ 3 = 153
可以写成 153 这种形式的数字就叫做水仙花数
代码思路:
- 产生0 ~ 100000 之间的数字
- 判断该数字是否是水仙花数
(1)先判断位数
(2)利用 除 和 取模 运算来求出每一位
1、代码:
int main()
{
int i = 0;
for (i = 0; i < 100000; i++)//产生0~100000之间的数字
{
int count = 0;
int tmp = i;
//153
while (tmp != 0)//判断位数
{
count++;
tmp /= 10;
}
//tmp == 0 count == 3
tmp = i;//又变回了153
//求tmp的每一位
int sum = 0;
while (tmp != 0)
{
sum += pow(tmp % 10, count);
tmp /= 10;
}
if (sum == i)
{
printf("%d\n", i);
}
}
return 0;
}
2、pow 函数
函数原型:
double pow( double x, double y );
此函数是计算形如 x ^ y 的库函数,需要引用头文件 math.h
例如:
pow(5,3)
计算的就是 5 ^ 3