栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言求水仙花数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言求水仙花数

水仙花数

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

#include 
int main()
{
	int i;
	scanf("%d",i);	// 这里是用户输入的位数
	int n = 1;
	int fast = 1;
	// 根据用户输入的位数,得到最小的那个位数对应的值
	while(n < i)	
	{
		fast *= 10;	// 要进行 n-1 次相乘
		n++;
	}
	
	n = fast;	// 做一个变量的转存,因为在这个过程中,要消耗变量
	// 这哭做的是 100 - 999 的遍历
	while(n < fast*10)
	{
		int t = n;	// 再次做一个变量的转存,为了便于后期 进行判断
		int sum = 0;
		
		// 最取出的 各个位数进行 求和
		do{
			int d = t % 10;
			t /= 10;
			// 进行 i 次方运算
			int p = d;
			int j = 1;
			while(j < i)
			{
				p *= d;
				j++;
			}
			sum += p;	// 求和
		}while(t > 0);
		// 判断是否相等,相等则输出
		if(sum == n)
		{
			printf("%dn",n);
		}
		n++;
	}
	
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/779092.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号