C语言 ——— 打印水仙花数

目录

何为水仙花数

题目要求

代码实现


何为水仙花数

"水仙花数"是指一个n位数,其各位数字的n次方之和等于该数本身

如:153 = 1^3 + 5^3 + 3^3,则153就是一个"水仙花数"


题目要求

求出0~100000的所有"水仙花数"并输出


代码实现

复制代码
#include<stdio.h>
#include<math.h>
int main()
{
	// 遍历0~100000的整数

	for (int i = 0; i <= 100000; i++)
	{
		// 计算i的位数
		int n = 1;
		int tmpi = i;
		while (tmpi = tmpi / 10)
			n++;

		// 计算i的每一位次方n后的和
		int sum = 0;
		tmpi = i;
		while (tmpi != 0)
		{
			sum = sum + pow(tmpi % 10, n);
			tmpi = tmpi / 10;
		}

		// 判断并输出打印
		if (sum == i)
			printf("%d\n", sum);
	}
	return 0;
}

代码解析:

1.先计算出当前数的位数有几位

2.再计算出当前数的每一位次方位数后的和

3.最后判断和是否等同于当前数

代码验证:

相关推荐
v_for_van1 小时前
C语言__attribute__
服务器·c语言·开发语言·mcu·嵌入式·嵌入式实时数据库
不灭的黄金瞳1232 小时前
C语言实现单链表
c语言·数据结构
萌动的小火苗2 小时前
Linux进程线程面试题【无答案】
linux·运维·服务器·c语言·开发语言
春风解人意3 小时前
从零开始学习嵌入式P29----线程间的通信
c语言·嵌入式硬件·学习
从零开始的嵌入式之旅4 小时前
day32
linux·c语言·经验分享·笔记·嵌入式硬件
一条破秋裤4 小时前
C-数据类型
c语言·开发语言·chrome
xx~t4 小时前
嵌入式学习——进程与线程2
linux·c语言·学习·进程与线程
Discipline~Hai7 小时前
Linux应用软件编程04-线程
linux·服务器·c语言·开发语言·linux应用软件编程
LuminousCPP8 小时前
数据结构-二叉树(五):查找、销毁与前序序列建树
c语言·数据结构·笔记·二叉树
Navigator_Z16 小时前
LeetCode //C - 1208. Get Equal Substrings Within Budget
c语言·算法·leetcode