前提知识:
水仙花数是指一个三位数,其各位数字立方和等于该数 本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
编程思路:首先要找出个位(units)十位(tens)百位(hundreds),之后判断三次方相加是否等于本身,最后输出。
1.找出3个数三位数987/100=9.98,int定义,得到百位;987/10=98.7,之后再减去百位*10=8,得到十位,987-100*百位-10*十位=个位(变量都用int整型)
2.if判断即可
代码如下:
#include <stdio.h> int main() { int i=0,units=0,tens=0,hundreds=0; puts("100~999之间的所有水仙花数为:"); for(i=100;i<=999;i++){ hundreds=i/100; tens=i/10-hundreds*10; units=i-hundreds*100-tens*10; if(i==hundreds*hundreds*hundreds+tens*tens*tens+units*units*units){ printf("%5d",i); } } return 0; }
结果如下: