c语言编程中水仙花数怎么编

时间:2025-01-29 01:57:03 网络游戏

在C语言中,可以通过编写一个简单的程序来找出所有的三位水仙花数。水仙花数是指一个三位数,其各位数字的立方和等于该数本身。以下是一个示例代码,用于找出并打印所有的三位水仙花数:

```c

include

include

// 函数用于判断一个数是否为水仙花数

int isArmstrong(int num) {

int originalNum, remainder, result = 0, n = 0;

originalNum = num;

// 计算数字的位数

while (originalNum != 0) {

originalNum /= 10;

++n;

}

originalNum = num;

// 计算每个位上的立方和

while (originalNum != 0) {

remainder = originalNum % 10;

result += pow(remainder, n);

originalNum /= 10;

}

// 判断是否为水仙花数

if (result == num) return 1;

else return 0;

}

int main() {

int i;

printf("三位水仙花数有: ");

// 遍历所有的三位数

for (i = 100; i <= 999; i++) {

if (isArmstrong(i)) {

printf("%d ", i);

}

}

printf("\n");

return 0;

}

```

代码解释:

isArmstrong函数

该函数接受一个整数`num`,并返回一个布尔值,指示该数是否为水仙花数。

首先,计算`num`的位数`n`。

然后,计算`num`的每一位的立方和。

最后,比较立方和与原始数字是否相等,如果相等则返回1,否则返回0。

main函数

在`main`函数中,使用一个`for`循环遍历所有的三位数(从100到999)。

对于每个数,调用`isArmstrong`函数判断其是否为水仙花数。

如果是水仙花数,则打印该数。

编译和运行:

将上述代码保存到一个文件中,例如`armstrong.c`。

使用C编译器编译该文件,例如使用`gcc`:

```sh

gcc -o armstrong armstrong.c -lm

```

运行生成的可执行文件:

```sh

./armstrong

```

运行程序后,将输出所有的三位水仙花数。