水仙花数(C语言)

文章目录

    • 水仙花数的起源
    • 思路
    • 运行代码

水仙花数的起源

水仙花数的名称来源于希腊神话中的美少年纳西索斯(Narcissus),其名字“Narcissus”与水仙花数的英文名称“Narcissistic number”的词根一致。

水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1^3+5^3+3^3=153。这个概念最早可以追溯到1946年,由数学家Dudeney在一本数学谜题书中提出,但与植物水仙花无关。

思路

1.运用for循环验证1-200是否为水仙花数

for (i = 0; i < 200; i++)

2.计算几位数

		while(tep)
		{
			count++;
			tep = tep / 10;
		}

3.再定义tep(强调)

tep = i;

4.各位数字的n次方之和

		while (tep)
		{
			sum = sum+pow(tep % 10, count);
			tep /= 10;
		}

5.if判断i==sum

		if (sum = i)/*判断sum=i*/
		{
			printf("%d ", i);
		}

运行代码

#include<stdio.h>
#include<math.h>

int n = 10, count = 1;
void Print_daffodils(int i)
{
	for (i = 0; i < 200; i++)
	{
		int tep = i;/*初始化tep*/
		/*计算几位数*/
		while(tep)
		{
			count++;
			tep = tep / 10;
		}
		tep = i;/*再初始化*/
		int sum = 0;
	/*计算sum*/
		while (tep)
		{
			sum = sum+pow(tep % 10, count);
			tep /= 10;
		}
		if (sum = i)/*判断sum=i*/
		{
			printf("%d ", i);
		}
	}
}

int main()
{
	int i = 0;
	printf("水仙花数:");
	Print_daffodils(i);
	printf("\n");
	return 0;
}

  • 11
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值