一道java编程题:打印出1~~10000范围中所有的“水仙花数”,所谓的“水仙花数”是指一个3位
一道java编程题:打印出1~~10000范围中所有的“水仙花数”,所谓的“水仙花数”是指一个3位数其各位数字立方和等于该数本身。例如,153是一个“水仙花数”,因为15...
一道java编程题:打印出1~~10000范围中所有的“水仙花数”,所谓的“水仙花数”是指一个3位数其各位数字立方和等于该数本身。例如,153是一个“水仙花数”,因为 153 = 1³ + 5³ + 3³ 。 (只用java基本的语法知识做出来)
展开
3个回答
展开全部
public class ShuiXian {
public static void main(String[] args) {
int a = 0;//百位数字
int b = 0;//十位数字
int c = 0;//个位数字
int temp = 0;//百位数字立方+数位数字立方+个位数字立方
for (int i = 100; i < =999; i++) {
a = i/100;//计算百位数字
b = (i-a*100)/10;//计算十位数字
c = i%10;//计算个位数字
temp = a*a*a+b*b*b+c*c*c;//相加结果
if(temp==i){//判断是否相等
System.out.println(i);
}
}
}
}
3位数其各数字立方和等于该数本身,已经限定了数字范围在100~~999之间。
追问
有错误,而且for循环里面没看懂
展开全部
ublic class TestDemo {
public static void main(String[] args) {
// 水仙花数”是指一个3位数其各位数字立方和等于该数本身
// 因为是三位数 所以 就不用从1循环到1万,直接从100到999
for (int i = 100; i <= 999; i++) {
if (isNum(i)) {
System.out.print(i + " ");
}
}
}
private static boolean isNum(int n) {
int a = n / 100; //百位
int b = n % 100 / 10;//十位
int c = n % 10;//个位
return n == a * a * a + b * b * b + c * c * c;
}
}
输出结果
153 370 371 407
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询