问题描述
153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1*1*1+5*5*5+3*3*3。编程求所有满足这种条件的三位十进制数。
输出格式
按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。
本题算法思路:这就是水仙花数。先取出个位数,再取出十位,最后取出百位数。求三次方相加。如果直接用pow,要引入头文件#include<math.h>。如果忘记了也可以自定义一个pow函数
核心代码:
c = i % 10 ;
b = i / 10 % 10;
a = i / 100;
完整代码:
#include<stdio.h>
int my_pow(int x , int y){
int result = 1;
int i;
for(i = 1 ; i <= y; i ++){
result *= x ;
}
return result;
}
int main(){
int a , b , c;
int i;
for(i = 100 ; i <= 999 ;i++){
c = i % 10 ;
b = i / 10 % 10;
a = i / 100;
if(my_pow(c , 3) + my_pow(b , 3) + my_pow(a , 3) == i){
printf("%d\n",i);
}
}
return 0;
}