文章目录
-
-
水仙花数的起源
- 思路
- 运行代码
-
水仙花数的起源
水仙花数的名称来源于希腊神话中的美少年纳西索斯(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;
}
标签:count,10,int,sum,C语言,tep,水仙花 From: https://blog.csdn.net/2301_80975833/article/details/136950985