05.05 C语言经典算法:打印“水仙花”数,你知道什么是水仙花数吗?

题目

题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位

数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方

+5的三次方+3的三次方。

C语言经典算法:打印“水仙花”数,你知道什么是水仙花数吗?

水仙花:和水仙花数并没有什么关系

小知识

水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。

其他位数的自幂数名字:

一位自幂数:独身数

两位自幂数:没有

三位自幂数:水仙花数

四位自幂数:四叶玫瑰数

五位自幂数:五角星数

六位自幂数:六合数

七位自幂数:北斗七星数

八位自幂数:八仙数

九位自幂数:九九重阳数

十位自幂数:十全十美数

C语言经典算法:打印“水仙花”数,你知道什么是水仙花数吗?

常见水仙花数

三位的水仙花数共有4个:153,370,371,407;

四位的四叶玫瑰数共有3个:1634,8208,9474;

五位的五角星数共有3个:54748,92727,93084;

六位的六合数只有1个:548834;

七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;

八位的八仙花数共有3个:24678050,24678051,88593477

......

题目分析

因为我们只求三位数的水仙花数,所以关键点就是求出一个三位数的个位、十位、百位。利用for循环控制100-999个数,每个数分解出个位,十位,百位。

比如一个数153,个位可以用取模:153%10=3得到;

十位可以先除10再对10取模:153/10%10=5;

百位直接除100即可:

153/100=1。

代码如下:

C语言经典算法:打印“水仙花”数,你知道什么是水仙花数吗?

好了,欢迎大家提供更好的方法~~~


分享到:


相關文章: