DESKTOP-8DEPNOJ_20200827-郭时佐

问题

刚开始对于count==0的条件有疑问,很久才想通是为了输出条件设置。

public class Questions {

public static void main(String[] args) {
    getResult();
}

public static void getResult() {
    /**
     * 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 
     * 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
     * (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
     *  (2)如果n > k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
     * (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
     * 
     */

    Scanner input = new Scanner(System.in);

    int num;
    int count=0;
    String result = "y";
    do {
        System.out.println("请输入一个整数,我们可以帮您分解出此数的所有质因数:");
        num = input.nextInt();
        System.out.print(num+"=");
        for (int i = 2; i <= num; i++) {
            if(num%i==0) {  //质因数
                if(count==0){
                  System.out.print(i);
                  }
                else{
                   System.out.print("*"+i);
                   num = num/i;
                }
                if(num>i) {
                   i--;
                }
                count++;
            }
        }
        System.out.println("\n还有继续吗?(y/n)");
        result = input.next();
    } while ("y".equalsIgnoreCase(result));

}

}

解决方案

我想问如何让从输入第二个数的时候,改善输出直接变成*数值的问题

因为count会一直自增 有没有更好的方法改善

image-20200827220734685

吐槽

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1