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

avatar
作者
筋斗云
阅读量:2

目录

何为水仙花数

题目要求 

代码实现


何为水仙花数

“水仙花数”是指一个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.最后判断和是否等同于当前数

代码验证:

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!