【问题标题】:How do I show the entire calculation in the output?如何在输出中显示整个计算?
【发布时间】:2014-05-26 00:43:21
【问题描述】:

晚上好,

我是 java 初学者,我被分配编写一个分解素数的程序。 这就是我目前所得到的。

package introductionProgramming;

import javax.swing.JOptionPane;

public class Primes {
                public static void main(String[] args) {
                int primo;

    primo = Integer.parseInt(JOptionPane.showInputDialog("Inform prime number: "));

        while (prime % 2 == 0) {
            prime = prime / 2;
        }
        while (prime % 3 == 0) {
            prime = prime / 3;
        }
        while (prime % 5 == 0) {
            prime = prime / 5;
        }

        JOptionPane.showMessageDialog(null, prime);
                }
    }

所以分解部分似乎工作,但我需要输出,如果输入数字 180,看起来类似于:

180  2
90   2
45   3
15   3
5    5
1

我不知道该怎么做。

【问题讨论】:

  • 或许OP的意思是计算?
  • 怎么样,在每个while 循环中,在进行除法之前,您可以打印出除数和除数。这对你有用吗?
  • 对不起。我很着急。我已经修好了。
  • @DavidWallace 你能告诉我怎么做吗?我是新手,真的很困惑,但我认为它可能会奏效。 :)
  • 你真的要我写代码来告诉你如何将值打印到你的控制台吗?

标签: java primes decomposition


【解决方案1】:

要将计算作为一个整体发送到输出,您需要收集所有结果并将其作为一个整体发送。为此,在查找每个结果时,您将向 StringBuffer 对象添加适当的文本,该对象将收集最终显示的结果。以下是您的代码示例。

public class Primes {
    public static void main(String[] args) {


    int prime = Integer.parseInt(JOptionPane.showInputDialog("Inform prime number: "));
    StringBuffer resultsBuffer = new StringBuffer();

    while (prime % 2 == 0) {
        resultsBuffer.append(prime+" "+2+"\n");
        prime = prime / 2;

    }
    while (prime % 3 == 0) {
        resultsBuffer.append(prime+" "+3+"\n");
        prime = prime / 3;

    }
    while (prime % 5 == 0) {
        resultsBuffer.append(prime+" "+5+"\n");
        prime = prime / 5;

    }

    resultsBuffer.append(prime+" "+1+"\n");



    JOptionPane.showMessageDialog(null, resultsBuffer);
    }
}

【讨论】:

  • 你有没有运行这段代码来查看你的代码的结果?
  • 是的,它显示了所有结果,但现在注意到 OP 还想要结果旁边的除数,编辑答案。
  • 是的,这不符合 OP 的要求。将所有内容放在列表中以便之后打印,而不是每次分割时都打印,这似乎也有点毫无意义。最后,如果您坚持将内容存储在列表中并在最后进行迭代,我建议您使用增强的 for 循环。
  • 为了上帝的爱,你能在屏幕上带来有意义的好消息吗?这样你就可以投票了
  • 我认为resultsBuffer.append(prime+" "+1+"\n"); 的位置不对。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多