[Java] 纯文本查看 复制代码
/*
需求:输入一个整数,要求打印输出为该整数的分解因式
例如:输入90
输出:90=2*3*3*5
这道题是用循环来做的,本身涉及到的知识我感觉并不是特别难,对于我们初学者来说,难点在于如何将这个简单的数学原理用代码表示出来。首先我想到的是用一个死循环,因为你并不知道用户会输入一个多大的数,所以你不知道这个数到底有多少个因子,总得计算次数是不固定的。因此用死循环无限进行下去,当把所有计算结果都计算出来的时候就停止循环,结束程序。
*/
import java.util.*;
public class NumTest
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.print("请输入要分解的数:");
int num = sc.nextInt();
int i = 2;
String result = num + "=";
//下面整体加入if(num > 1)时的方法体
//因为是自己测试,所以我自己只会输入大于1的数
//次数未知,无限循环,直到满足特定条件为止
while (true)
{
//如果num等于i,说明i已经是最大(且最后)的一个因子
if (num - i == 0)
{
//拼接最后一个因子i
result += i;
//跳出循环
break;
}
//如果i不是最大因子,能被整出
if (num % i == 0)
{
//拼接
result += i + "*";
//除去因子i,用商继续循环
num /= i;
//因为可能存在连续相同的因子i,因此如果if没有执行,说明i不再是因子,i自增,进行下次循环
}
else
{
i++;
}
}
//打印结果
System.out.println(result);
}
}