38 lines
848 B
C
38 lines
848 B
C
|
// 【扩展题1】请编程,输出0-1000以内的水仙花数
|
|||
|
// 【提示】水仙花数算法:一个数 = 它各位的立方和,例如 : 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
|
|||
|
#include <stdio.h>
|
|||
|
|
|||
|
void fun1()
|
|||
|
{
|
|||
|
int i, j, k;
|
|||
|
for (i = 0; i < 10; i++)
|
|||
|
{
|
|||
|
for (j = 0; j < 10; j++)
|
|||
|
{
|
|||
|
for (k = 0; k < 10; k++)
|
|||
|
{
|
|||
|
if (i * 100 + j * 10 + k == i * i * i + j * j * j + k * k * k)
|
|||
|
printf("%d\n", i * 100 + j * 10 + k);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void fun2()
|
|||
|
{
|
|||
|
int x = 0;
|
|||
|
while (x++ < 1000 - 1) // -1 是因为 1000 不是水仙花数
|
|||
|
{
|
|||
|
int a = x / 100;
|
|||
|
int b = x / 10 % 10;
|
|||
|
int c = x % 10;
|
|||
|
if (x == a * a * a + b * b * b + c * c * c)
|
|||
|
printf("%d\n", x);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
int main()
|
|||
|
{
|
|||
|
fun2();
|
|||
|
return 0;
|
|||
|
}
|