gpt4 book ai didi

java - 如何在随后打印的质因数之间添加 "x"而在最后打印的质因数之后没有额外的 "x"?

转载 作者:行者123 更新时间:2023-11-30 12:02:47 24 4
gpt4 key购买 nike

我正在执行质因数分解代码,并尝试在用户输入数字的每个显示质因数之间打印“x”。但是,我似乎无法弄清楚如何做到在最后显示的质因数之后不会出现额外的“x”。

我试过在 print 语句中的“x”之后连接 mod,我试过考虑使用 If 语句 (startInt % mod == 0),但我不太确定还有什么声明就是为了那个。

    System.out.println("Enter an integer to be factored:");
int startInt = userInput.nextInt();

if(startInt % 2 == 0 || startInt % 3 == 0 || startInt % 5 == 0 || startInt % 7 == 0 || startInt % 11 == 0 || startInt % 13 == 0)
{
for(int mod = 2; mod <= startInt; mod++)
{
while(startInt%mod == 0)
{
startInt /= mod;
System.out.print(mod+" x ");
}
}
}

else
{
System.out.println(startInt+" = "+startInt);
System.out.println(startInt+" is a prime number.");
}

我预计 784784 的输出为 2 x 2 x 2 x 2 x 7 x 7 x 7 x 11 x 13 但实际输出为 2 x 2 x 2 x 2 x 7 x 7 x 7 x 11 x 13 x.

最佳答案

检查此示例(我将其改编为 Javascript,但固定行是两种语言的示例):

const System = {
out: {
println: console.log
}
};

System.out.println("Enter an integer to be factored:");
let startInt = 784784;
const expectedResult = '2 x 2 x 2 x 2 x 7 x 7 x 7 x 11 x 13'

if(startInt % 2 == 0 || startInt % 3 == 0 || startInt % 5 == 0 || startInt % 7 == 0 || startInt % 11 == 0 || startInt % 13 == 0) {
let result = '';
for(let mod = 2; mod <= startInt; mod++) {
while (startInt%mod === 0) {
startInt /= mod;
// Fix this line
result += mod + (mod < startInt ? ' x ' : '');
}
}
System.out.println(result);
if (result !== expectedResult) {
System.out.println('Fail');
} else {
System.out.println('Everything is Ok');
}
} else {
System.out.println(startInt+" = "+startInt);
System.out.println(startInt+" is a prime number.");
}

你必须避免在最后一个循环中添加'x':

result += mod + (mod < startInt ? "x ": "");

关于java - 如何在随后打印的质因数之间添加 "x"而在最后打印的质因数之后没有额外的 "x"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58252035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com