1.题目分析:
(1)什么叫水仙花数?
一个三位数,其各位数字的立方和确好等于该数本身就是水仙花数,也就是说这个数n在100到999之间,其数的值等于个位,十位和百位数字立方和。
(2)c语言表示个位、十位、百位(n为那个数):
- 个位:n%10
- 十位:(n/10)%10
- 百位:(n/10)%10
2.条件分析
- n在100-999之间
- 个位、十位、百位的pow(x,3)之和=n的就是水仙花数
3.代码实现:
#include"stdio.h"
#include"math.h"//引入pow(),直接乘也可以,看个人习惯
int main(){
int a,b,c;//个位、十位、百位
int n=100;//那个数,用于弄范围,水仙花数的范围是100-999,这里设定初始值为100,while(n<1000)
while(n<1000){
a=n%10;//个位
b=(n/10)%10;//十位
c=(n/100)%10;//百位
if(pow(a,3)+pow(b,3)+pow(c,3)==n){
printf("%d\n",n);
}
n++;
}
}