打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
最重要的是学会如何用% 和 / 熟练的分解个位十位百位等。
通过观察我发现,跟%有关的规律:
%10 -------> 得到的就是最后一位数
%100 --------> 得到的就是最后两位数
%1000 --------> 得到的就是最后三位数
...以此类推,有几个0就得到最后几位数,小伙伴们可以通过这种记忆快速解决数位问题
例如712,
712 % 10 = 2;
712 % 100 = 12;
再来说说,跟 / 有关的规律:
/ 10 -------> 就排除最后一位数
/ 100 --------> 就排除最后两位数
/ 1000 --------> 就排除最后三位数
...以此类推,有几个0就排除最后几位数
例如712,
712 / 10 = 71;
712 / 100 = 7;
6899 / 1000 = 6;
#include <stdio.h>
int main (){
int i=0,j=0,k=0;//分别表示个位、十位、百位
for (int n = 100 ; n <= 999; n++){ //三位数的范围
i = n %10;
j = n%100/10;
k = n/100;
if(i*i*i+j*j*j+k*k*k == n){
printf("%d ",n);
}
}
return 0;
}