ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

打印水仙花数---c语言刷题

2026/9/22 10:28:03 拓冰建站 浏览量
打印水仙花数---c语言刷题

欢迎关注个人主页:逸狼


创造不易,可以点点赞吗~

如有错误,欢迎指出~

题述

求出0~100000之间的所有“水仙花数”并输出。

“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。


我们要先了解水仙花数,他是自幂数的一种


思路

此题的关键在于只要知道判断一个数据是否为水仙花数的方式,问题就迎刃而解。假定给定一个数据data,方法如下:
1. 求取data是几位数
2. 获取data中每位上的数据,并对其进行立方求和
3. 对data中每个位上的数据立方求和完成后,在检测其结果是否与data相等即可,
相等:则为水仙花数,否则:不是

代码实现

#include <stdio.h>
#include <math.h>int main()
{int i = 0;for(i=0; i<=99999; i++){int count = 1;int tmp = i;int sum = 0;//判断i是否为水仙花数//1. 求判断数字的位数while(tmp/10){count++;tmp = tmp/10;}//2. 计算每一位的次方和tmp = i;while(tmp){sum += pow(tmp%10, count);tmp = tmp/10;}//3. 判断if(sum == i)printf("%d \n", i);}return 0;
}

运行结果