前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >经典编程题:求水仙花数

经典编程题:求水仙花数

作者头像
利刃大大
发布2023-04-12 13:53:54
3010
发布2023-04-12 13:53:54
举报
文章被收录于专栏:编程语言/linux/算法

什么是水仙花数?

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。


用C语言如何实现?

首先,先把我们的思路大概想好,分为以下几步:

1.我们要求的是0-10w内的水仙花数,那就要用到循环 2.求i这个数字的位数 3.把这个多位数每位的数分解然后各自求三次方然后求和 4.判断

代码语言:javascript
复制
#include<stdio.h>
#include<math.h>
int main()
{
	for(i=0;i<100000;i++)
	{
		int n=i;
		int num=1;//num为多位数的位数
		while(n/10)
		{
			num++;//计算位数
			n=n/10;
		}
		n=i;//重置n,防止死循环
		int sum=0;
		while(n)
		{
			sum=sum+pow(n%10,num);//计算各位数三次方的和
			n=n/10;
		}
		if(sum==i)
		printf("%d ",i);
	}
	return 0;
}

结果如下:

0 1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474 54748 92727 93084

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是水仙花数?
  • 用C语言如何实现?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档