public class a {
public static void main(String[] args) {
int a =1 ;
int b = 1 ;
int c = 1 ;
int num = a*a*a + b*b*b+c*c*c;
int num1 = a*100+ b*10 + c;
for(a=1;a<9;a++) {
for(b=1;b<9;b++) {
for(c=1;c<9;c++) {
if( num1 <1000 && num1 > 100 && num1 == num) {
System.out.println(num1);
}
}
}
}
}
}
你的代码可以这样修改
public static void main(String[] args) {
for (int a = 1; a < 9; a++) {
for (int b = 0; b < 9; b++) {
for (int c = 0; c < 9; c++) {
int num = a * a * a + b * b * b + c * c * c;
int num1 = a * 100 + b * 10 + c;
if (num1 < 1000 && num1 > 100 && num1 == num) {
System.out.println(num1);
}
}
}
}
}
但是建议这样写:
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int a = i % 10;
int b = i / 10 % 10;
int c = i / 100;
if (a * a * a + b * b * b + c * c * c == i) {
System.out.println(i);
}
}
}
你在循环外计算了num和num1,在循环内并没有更新二者的值,所以永远不会有结果,这么多循环就判断了一个111是不是水仙花数。
num 和 num1 需要每一次循环后更新。放在循环外就更新不了。if判断就一直是false。所以走不到输出那里去,就不会打印了
这种问题就不要贴出来。一看debug都没debug过。要培养自己寻找问题的能力,而不是答案
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632