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会一直自增 有没有更好的方法改善
吐槽
无
近期评论