2016-09-30 73 views
0

我发布了下面的原始问题。我得到的最正确的部分,但我不知道如何检查输入的第一个数字是否定的,并打印“坏的输入”。谁能帮我。检查一个值的输入并打印一些东西

编写一个程序,首先在一行输入中读取一系列正整数,然后计算并打印这些整数的乘积。整数被接受并相乘,直到用户输入小于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),如果是,则打印错误并结束程序。

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; 
} 
相关问题