首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何使用C语言去获取水仙花数

如何使用C语言去获取水仙花数

作者头像
想不明白的过度思考者
发布2025-10-29 15:41:26
发布2025-10-29 15:41:26
1250
举报
文章被收录于专栏:JavaEEJavaEE
C语言:水仙花数

如何使用C语言去获取水仙花数

水仙花数的规则:水仙花数是指一个n位数(n≥3),‌它的每个位上的数字的n次幂之和等于它本身。‌

先看代码

代码语言:javascript
复制
#include <stdio.h>

int main() {
	for (int i = 100; i < 1000; i++) {
		int j = i;
		int num = 0;
		int Narcissistic_number = 0;
		while (j > 0) {
			num = (j % 10) * (j % 10) * (j % 10);
			Narcissistic_number += num;
			j /= 10;
		}
		if (Narcissistic_number == i)
		{
			printf("水仙花数:%d\n", Narcissistic_number);
		}
	}
	return 0;
}

具体分析

  1. 最外层是for循环,因为水仙花数为100-1000的数
代码语言:javascript
复制
for (int i = 100; i < 1000; i++) {

}
  1. 定义·三个变量, j:用来进行接下来内部的判断,且不影响外部的i的循环。 num:用来存储余数并乘以三次方。 Narcissistic_number:用来存储拟定水仙花数
代码语言:javascript
复制
int j = i;
int num = 0;
int Narcissistic_number = 0;
  1. 判断是否为水仙花数 如当j=153时 j%10取余数后乘以三次方得到27,在加给Narcissistic_number ,使Narcissistic_number =27 然后j再整除10等于15,j%10取余数后乘以三次方得到125,在加给Narcissistic_number ,使Narcissistic_number =27+125 = 152,然后j再整除10等于1,j%10取余数后乘以三次方得到1,在加给Narcissistic_number ,使Narcissistic_number =152+1= 153,然后j再整除10等于0, 此时j = 0不满足while循环,跳出循环。
代码语言:javascript
复制
while (j > 0) {
			num = (j % 10) * (j % 10) * (j % 10);
			Narcissistic_number += num;
			j /= 10;
		}
  1. 若此时的Narcissistic_number 和for循环的i相等时,则该数就是水仙花数,因此打印此数
代码语言:javascript
复制
if (Narcissistic_number == i)
		{
			printf("水仙花数:%d\n", Narcissistic_number);
		}

感谢观看❤❤❤

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • C语言:水仙花数
  • 如何使用C语言去获取水仙花数
    • 具体分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档