首页 >> 优选问答 >

问怎么用C语言中的while语句编写水仙花数程序

2025-12-10 02:00:29

答

【怎么用C语言中的while语句编写水仙花数程序】在C语言中,`while`循环是一种常用的控制结构,用于重复执行某段代码,直到满足特定条件为止。本文将通过一个具体的例子——“水仙花数”的判断程序,展示如何使用 `while` 语句实现该功能,并以加表格的形式进行说明。

一、什么是水仙花数?

水仙花数(Narcissistic number)也称为自恋数、自幂数,是指一个 n 位数,其各位数字的 n 次幂之和等于它本身。例如:153 是一个三位数的水仙花数,因为:

$$

1^3 + 5^3 + 3^3 = 153

$$

二、使用 while 语句实现水仙花数程序的思路

1. 定义变量:如当前数字 `num`、个位数 `digit`、总和 `sum`、数字位数 `digits`。

2. 使用 while 循环遍历数字范围(如从 100 到 999)。

3. 在循环内部提取每一位数字,并计算其幂次之和。

4. 比较总和与原数,若相等则输出为水仙花数。

三、代码示例(使用 while 语句)

```c

include

include

int main() {

int num = 100;

while (num <= 999) {

int original = num;

int sum = 0;

int digits = 0;

int temp = num;

// 计算数字的位数

while (temp > 0) {

digits++;

temp /= 10;

}

temp = num;

while (temp > 0) {

int digit = temp % 10;

sum += pow(digit, digits);

temp /= 10;

}

if (sum == original) {

printf("%d\n", original);

}

num++;

}

return 0;

}

```

四、程序运行结果

该程序将输出所有三位数中的水仙花数:

```

153

370

371

407

```

五、

本程序利用 `while` 循环逐个检查三位数,通过两次嵌套的 `while` 循环分别计算数字位数和每位数字的幂次之和。最终判断是否为水仙花数。这种方法结构清晰、逻辑明确,适合初学者理解 `while` 循环的应用。

六、关键步骤对比表

步骤 功能描述 使用的 `while` 语句
1 遍历数字范围(100~999) `while (num <= 999)`
2 计算当前数字的位数 `while (temp > 0)`(计算位数)
3 提取每位数字并计算幂次之和 `while (temp > 0)`(计算各位幂和)
4 判断是否为水仙花数 条件判断 `if (sum == original)`

通过以上内容,你可以清晰地看到如何在 C 语言中使用 `while` 语句来实现水仙花数的判断程序。这种方式不仅符合编程逻辑,也便于理解和扩展。

  免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。

 
分享:
最新文章