资源限制
内存限制:512.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1*1*1+5*5*5+3*3*3。编程求所有满足这种条件的三位十进制数。
输出格式
按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。
思路
1. 利用循环将所有的三位数遍历一次
2. 分别取出个、十、百位上的数字进行计算
代码
public class Main{
public static void main(String[] args){
//遍历所有的三位数
for(int i=100; i<=999; i++){
//分别取出各位上的数字
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100 % 10;
//进行幂乘运算
if(i == (ge*ge*ge + shi*shi*shi + bai*bai*bai)){
System.out.println(i);
}
}
}
}
总结
此题较为简单,需要注意的无非是分别取出各个位上的数。
规律为:
个位:i / 1 % 10 (“/ 1”操作因为与原数相同,所以可以省略,变为:i % 10)
十位:i / 10 % 10
百位:i / 100 % 10
不难总结出规律:(原数) / (需要取得的位数) % 10
千位、万位、十万...同理。