当前位置:首页 » 《随便一记》 » 正文

《C语言入门》简单水仙花问题求解_m0_60756071的博客

19 人参与  2022年04月22日 08:19  分类 : 《随便一记》  评论

点击全文阅读


目录

1.问题

2.问题求解及代码实现

1.问题描述

求出0~100000之间的所有“水仙花数”并输出。“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如 : 153=1 ^ 3+5 ^ 3+3 ^ 3,则153是一个“水仙花数”。

2.问题求解及代码实现

首先严格意义上的水仙花数应该是一个三位数,这里的“水仙花数”范围为0~100000,这就给我们加大了难度,我们想要求解各位数的n次方之和的话,我们需要首先求解这个数是个几位数,我们使用下面的代码简单实现:

while (w > 0)
		{
			w /= 10;
			i++;
	    }

这样就可以求得一个数w的位数i,接下来为了代码简洁易懂,我们编写一个函数求解一个数的n次方的值,代码如下:

int x(int a,int b)
{
	int g = 0;
	int sum = 1;

	for (g = 0; g < b; g++)
	{
		sum *= a;
	}
	return sum;
}

之后我们将一个n位数的每一位都剥离出来,使用上述函数求得每一位的n次方的值,最后再累加起来,若累加起来的值等于这个数本身,我们则称之为”水仙花数“,并将之打印。完整代码如下:

int x(int a,int b)
{
	int g = 0;
	int sum = 1;

	for (g = 0; g < b; g++)
	{
		sum *= a;
	}
	return sum;
}
int main()
{
	int n = 0;
	int y = 0;
	int z = 0;
	int j = 0;
	int w = 0;
	for (n = 0; n <= 100000; n++)
	{
		int i = 0;
		int m = 0;
		y = n;
		z = n;
		w = n;
		while (w > 0)
		{
			w /= 10;
			i++;
	    }
		while (y > 0)
		{
			j = y % 10;
			m += x(j, i);
			y/= 10;
		}
		if (z == m)
			printf("%d ", m);
	}
	return 0;
}

最终打印出的结果为

 本文到此结束。感谢大家的阅读,欢迎点赞评论,互关互注,祝大家万事如意。


点击全文阅读


本文链接:http://zhangshiyu.com/post/38662.html

水仙花  求解  位数  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 家宴过后,我捉奸了庶妹和我老公无广告_庶妹老公侍卫TOP10_小说后续在线阅读_无删减免费完结_
  • 寝室六个人,她们背着我建五人群必读文_太天真申请书冷笑最新阅读_小说后续在线阅读_无删减免费完结_
  • 开局获得狐仙传承结局+番外_江帆赵雪隐藏剧情_小说后续在线阅读_无删减免费完结_
  • 刀锈春根生,白骨犹温完结全文_卫舟棠棠知意一口气完结_小说后续在线阅读_无删减免费完结_
  • 夫君立筷子定我灾星罪名,我改嫁冷宫皇子后他追悔莫及好评_赵荀孟如安青瑶精心编著_小说后续在线阅读_无删减免费完结_
  • 邻居低素质,而我没素质独家番外_老太太赖皮欣欣超长版_小说后续在线阅读_无删减免费完结_
  • 重生后我转嫁首富瘸腿独子,总裁前夫却疯了一口气看完_妹妹傅云琛沈明辉独家番外_小说后续在线阅读_无删减免费完结_
  • 我拒绝给系花捐款后,全系同学悔疯了在线阅读_小说后续在线阅读_无删减免费完结_
  • 我让位给女友的透视眼竹马,他却说如果能重生再也不来了。虐心反转_玉石林若女友推荐_小说后续在线阅读_无删减免费完结_
  • 相国独子的丫鬟砸坏我的玉佩后,我当场拒婚阅读_玉佩陈郡谢氏全新_小说后续在线阅读_无删减免费完结_
  • 手术时,我看着病人惨死最新试读_淼淼陆知衍姜颜全本完结_小说后续在线阅读_无删减免费完结_
  • 男友霸道给我开黑卡,转头却骂我是捞女最新章节_肖年顾客黑卡热文_小说后续在线阅读_无删减免费完结_

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1