您现在的位置是:首页 > 严选问答网站首页严选问答

用C语言编写判断是否是水仙花数的程序

  • 编辑:伊叶树
  • 2025-10-25 23:03:25
  • 来源:网易

用C语言编写判断是否是水仙花数的程序】在编程学习中,水仙花数是一个经典的数学问题,常用于练习条件判断和循环结构。水仙花数(Narcissistic number)也称为自恋数、自幂数或阿姆斯壮数,是指一个n位数,其各位数字的n次幂之和等于该数本身。

例如:153 是一个 3 位数,1³ + 5³ + 3³ = 153,因此它是水仙花数。

一、水仙花数的基本概念

概念 说明
水仙花数 一个 n 位数,其各位数字的 n 次幂之和等于该数本身
举例 153、370、371、407 等为 3 位数的水仙花数
特点 需要计算每一位数字的 n 次方并求和

二、C语言实现思路

1. 输入一个整数:用户输入一个数,可能是任意位数。

2. 确定位数:通过循环或数学方法确定该数的位数 n。

3. 分解每一位数字:将每一位数字提取出来。

4. 计算各数字的 n 次方之和。

5. 比较总和与原数:若相等,则为水仙花数,否则不是。

三、代码示例

```c

include

include

int main() {

int num, originalNum, remainder, n = 0, sum = 0;

printf("请输入一个整数: ");

scanf("%d", &num);

originalNum = num;

// 计算位数

while (originalNum != 0) {

originalNum /= 10;

++n;

}

originalNum = num;

// 计算各位数字的n次方之和

while (originalNum != 0) {

remainder = originalNum % 10;

sum += pow(remainder, n);

originalNum /= 10;

}

if (sum == num)

printf("%d 是水仙花数。\n", num);

else

printf("%d 不是水仙花数。\n", num);

return 0;

}

```

四、测试结果示例

输入数值 是否为水仙花数 说明
153 1³+5³+3³=153
370 3³+7³+0³=370
407 4³+0³+7³=407
123 1³+2³+3³=36 ≠ 123
9474 9⁴+4⁴+7⁴+4⁴=9474

五、总结

通过 C 语言编写判断水仙花数的程序,可以很好地锻炼逻辑思维和对循环、条件语句的理解。掌握这一过程后,可以进一步扩展到其他类型的数字判断,如“阿姆斯特朗数”、“完全数”等。理解并实现水仙花数的判断,是学习编程的一个良好起点。

免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
Top