我在下面发布原始问题。我得到了大部分权利,但我不知道如何检查输入的第一个数字是否为负并打印“输入错误”。任何人都可以帮助我。
编写一个程序,首先在一行输入上读取一系列正整数,然后计算并打印这些整数的乘积。接受并乘以整数,直到用户输入小于1的整数。此最终数字不是产品的一部分。然后,程序打印产品。如果第一个输入的数字是负数或0,程序必须打印“输入错误。”并立即终止。
接下来,程序确定并打印产品的主要因子分解,按递增顺序列出因子。如果素数不是产品的因子,则它不得出现在因子分解中。样品运行如下。请注意,如果素数的幂是1,则答案中必须出现1。
这是我的代码:
Scanner input = new Scanner(System.in);
System.out.println("Enter integers:");
int product = 1;
int num = 0;
while (input.hasNextInt()) {
num = input.nextInt();
if (num < 1)
break;
product *= num;
}
System.out.println("Product: " + product);
int f = 2;
while (product >= f) {
int count = 0;
while (product % f == 0) {
count++;
product = product / f;
}
if (count > 0)
System.out.print(f + "^" + count + " ");
f++;
}
}
答案 0 :(得分:0)
没有给你所有的答案......跟踪哪一个是第一个。如果是第一个,请检查它的值(看它是否为0或小于0),如果是,则打印错误并结束程序。
答案 1 :(得分:0)
在循环开始读取输入之前,读取第一个整数并执行逻辑
int product = 1;
int num = 0;
num = input.nextInt();
if(num <1) {
System.out.println("bad number");
return;
}
product*=num;
while (input.hasNextInt()) {
num = input.nextInt();
if (num < 1)
break;
product *= num;
}