首页 新闻 会员 周边

水仙数代码求解问题,不知道出来那些问题?

0
悬赏园豆:30 [已解决问题] 解决于 2024-01-31 12:16



这个求水仙数的Java代码,我在控制台输入数据可没有反应,不知道出来那些问题,可以求解一下吗?

问题补充:

浮光跃迁的主页 浮光跃迁 | 初学一级 | 园豆:91
提问于:2024-01-21 17:13

代码被遮住了,没有发现吗

realzhangsan 3个月前
< >
分享
最佳答案
0

没有输出下图的判断,是因为在is方法里阻塞了。

在is()方法判断的时候,不应该判断是否(aaa)+(bbb)+(ccc) 等于shuru();
因为这样会执行shur()方法,又回到reader.nextInt()等待控制台输入数据了。

我根据你的逻辑,改了下,整体代码如下:

public class c1t3 {
    public static Integer shuru() {
        Scanner reader = new Scanner(System.in);
        System.out.println("123");
        int date = reader.nextInt();
        return date;
    }
    public static void main(String[] args){
        System.out.println("请输入一个三位数的整数");
        String a= shuru().toString();
        String[]b=a.split("");
        int[] math=new int[b.length];

        for(int i=0;i<b.length; i++) {
            math[i] = Integer.parseInt(b[i]);
        }
        if (is(math[0], math[1], math[2], Integer.parseInt(a))) {
            System.out.println("这个数是水仙数");
        } else {
            System.out.println("这个不是水仙数");
        }
    }

    public static boolean is(int a,int b,int c, int num){
        return(a*a*a)+(b*b*b)+(c*c*c)== num;
    }
}
收获园豆:15
程序时刻 | 菜鸟二级 |园豆:217 | 2024-01-23 16:37

超级感谢你的帮助!!!!!

浮光跃迁 | 园豆:91 (初学一级) | 2024-01-31 12:17
其他回答(3)
0

for (int i = 100; i <= 999; i++) {
int hundreds = i / 100;
int tens = (i % 100) / 10;
int ones = i % 10;
if (hundreds * hundreds * hundreds + tens * tens * tens + ones * ones * ones == i) {
System.out.println(i + "是水仙花数");
} else {
System.out.println(i + "不是水仙花数"); }
}

收获园豆:5
比奇堡扛把子 | 园豆:212 (菜鸟二级) | 2024-01-22 11:11

谢谢这个方法比我这个简便多了,但我还是想知道这个错哪了。

支持(0) 反对(0) 浮光跃迁 | 园豆:91 (初学一级) | 2024-01-22 15:01
1

is()方法不应该再调用shuru(),应该把上次输入结果传进来比较。
另外希望注意下书写规范

收获园豆:5
bcdea | 园豆:207 (菜鸟二级) | 2024-01-22 17:08

嗯嗯,谢谢指导,感谢你!!!

支持(0) 反对(0) 浮光跃迁 | 园豆:91 (初学一级) | 2024-01-31 12:19
0

把shuru()的值先保存了,然后用这个保存了的值进行==比较,不直接用shuru()来比较

收获园豆:5
AtanChen | 园豆:460 (菜鸟二级) | 2024-01-31 10:00

感谢你的帮助

支持(0) 反对(0) 浮光跃迁 | 园豆:91 (初学一级) | 2024-01-31 12:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册