网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 820|回复: 0
打印 上一主题 下一主题

【C语言】水仙花数

[复制链接]

711

主题

718

帖子

3204

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3204
跳转到指定楼层
楼主
发表于 2025-3-10 20:46:09 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
C语言中的水仙花数,是指一个 n 位数,它的每个位上的数字的n次方之和等于它本身。比如,153就是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153,这样的数字在数学上称为“自幂数”。

水仙花数是一类数学上的现象,有着美丽的形式和神奇的性质,被广泛用于数学科普和编程练习。在 C语言中,可以通过循环和条件判断等基本语句,来实现水仙花数的求解。

下面是一个简单的 C语言程序,用于求解三位数中的水仙花数:

  • #include <stdio.h>
  • int main()
  • {
  •     int num, digit, sum;
  •     printf("Three-digit narcissistic numbers:\n");
  •     for(num = 100; num <= 999; num++)
  •     {
  •         digit = num % 10;           // 获取个位数字
  •         sum = digit * digit * digit; // 计算个位数字的立方
  •         digit = num / 10 % 10;           // 获取十位数字
  •         sum += digit * digit * digit;    // 计算十位数字的立方
  •         digit = num / 100;           // 获取百位数字
  •         sum += digit * digit * digit; // 计算百位数字的立方
  •         if(num == sum)
  •             printf("%d\n", num);     // 输出水仙花数
  •     }
  •     return 0;
  • }


运行上述程序,输出结果如下:
Three-digit narcissistic numbers:
153
370
371
407
代码中,首先使用一个 for 循环,从 100 开始遍历到 999,对于每个三位数,将其个位、十位、百位上的数字分别提取出来,然后将它们的立方相加。如果最后的结果等于原数,则说明这个数字是水仙花数,将其输出即可。

这样的求解思路简单直观,代码易于理解和修改,适合初学者进行学习和练习。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2025-4-5 04:53 , Processed in 0.034711 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表