问题:水仙花数,所谓水仙花数是一个三位数,他的个位数字立方和等于该数本身,例如153=1*1*1+5*5*5+3*3*3
分析:
1,利用for循环控制100-999个数,每个数分解出个位,十位,百位
2,这里主要学到的是,分解位数
个位——n%10
最高位——n/(10)^(n的位数-1)
其他位(比如是从个位是1开始,那么十位就是2,依次的位数p)——n%(10)^p/(10)^(p-1)
代码:
int n,i,j,k;
for(n=100;n<=999;n++){
i=n/100; //分解出百位
j=n%100/10; //分解出十位
k=n%10; //分解出个位
if(i*i*i+j*j*j+k*k*k==n){
printf("%d ",n);
}
}
结果: