@java蓝桥杯B组习题基础篇(30)第七题:特殊的数字
关键字:循环 判断 数位
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333。编程求所有满足这种条件的三位十进制数。
输出格式
按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。
代码
/**
@author MingxuDeng
2021年4月14日
State:solved
Hint:
153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1*1*1+5*5*5+3*3*3。编程求所有满足这种条件的三位十进制数。
输出格式
按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。
Idea:
1.
*/
public class BASIC007 {
public static void main(String[] args) {
fangFa();
}
private static void fangFa() {
//方法一:
for(int i=100;i<1000;i++){//找到符合条件的数并输出
int bai=i/100;
int si=i%100/10;
int ge=i%10;
if(i==bai*bai*bai+si*si*si+ge*ge*ge){
System.out.println(i);
}
}
//方法二
for(int i=100;i<999;i++) {
int sum=0;
int a=i;
while(a!=0) {//对每个数位上的数都拿出来求三次方,然后用sum来存其和。
sum+=Math.pow(a%10, 3);
a/=10;
}
if(sum==i) {//若sum等于i,打印输出这个数。
System.out.println(i);
}
}
}
}