求水仙花数

求水仙花数,第1张

文章目录
  • C语言求水仙花数
    • 什么是水仙花数
    • 函数实现
    • 运行结果
  • 拓展
    • 自幂数
    • 自幂数的C语言代码实现
    • 运行结果

C语言求水仙花数 什么是水仙花数

水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。


例如:1^3 + 5^3+ 3^3 = 153

函数实现
#include 
#include 
int main()
{
	int i = 0;
	for (i = 100; i <= 999; i++)
	{
		int n = 0;
		int tmp1 = i;
		while (tmp1)//确定位数n
		{
			tmp1 /= 10;
			n++;
		}
		int tmp2 = i;
		int sum = 0;
		while (tmp2)//计算
		{
			sum += pow(tmp2 % 10, n);
			tmp2 /= 10;
		}
		if (sum == i)//判断
		{
			printf("水仙花数=%d\n", i);
		}
	}
	return 0;
}
运行结果

拓展

其实水仙花数只是自幂数的一种

自幂数

自幂数:一个x位数,它的每一位数的x次方之和等于它本身。



附:其他位数的自幂数名字
一位自幂数:独身数
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数

自幂数的C语言代码实现
#include 
#include 
int main()
{
	printf("请输入自幂数的位数:>");
	int x = 0;
	scanf("%d", &x);
	x = pow(10, x);
	int i = 0;
	for (i = 0; i <= x; i++)
	{
		int n = 0;
		int tmp1 = i;
		while (tmp1)//确定位数n
		{
			tmp1 /= 10;
			n++;
		}
		int tmp2 = i;
		int sum = 0;
		while (tmp2)//计算
		{
			sum += pow(tmp2 % 10, n);
			tmp2 /= 10;
		}
		if (sum == i)//判断
		{
			printf("自幂数=%d\n", i);
		}
	}
	return 0;
}
运行结果

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/563875.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-03
下一篇 2022-04-03

发表评论

登录后才能评论

评论列表(0条)

保存