试图创建一个程序,要求用户输入20到100之间的数字。 输入号码后。程序将输入的数字除以12。然后,程序将说出除法结果是偶数还是奇数。 (例如:35除以12的余数为11,这很奇怪。)
我已经启动了程序,但无法确定分割部分。
import java.util.Scanner;
public class Chpt3_Project {
public static void main (String [] args) {
// Create a Scanner object
Scanner sc = new Scanner(System.in);
// Prompt the user to enter an integer value between 20 and 100.
int input;
do {
System.out.print("Enter a number between 20 and 100: ");
input = sc.nextInt();
if (input < 20 || input >= 101) {
System.out.println("Invalid number input!");
}
} while (input < 20 || input >= 101);
//Divide result by 12 and show if even or odd
}
}
答案 0 :(得分:2)
您可以使用modulo operator来检查数字是偶数还是奇数。 假设您有
int n = 7;
应用模运算符
int r = n % 2;
将产生1
-发生的情况是这样:
将
n
除以2
,然后返回余数。
因此,我们知道,如果% 2
操作的余数为0
,则数字为偶数,否则,如果余数为1
,则数字为奇数。
在您的情况下,代码可能如下所示:
public static void main (String [] args) {
// Create a Scanner object
Scanner sc = new Scanner(System.in);
// Prompt the user to enter an integer value between 20 and 100.
int input = 0;
do {
System.out.print("Enter a number between 20 and 100: ");
input = sc.nextInt();
if (input < 20 || input >= 101) {
System.out.println("Invalid number input!");
}
} while (input < 20 || input >= 101);
// Divide the input by 12 and check if the remainder is an even number (== 0).
boolean isEven = (input % 12) % 2 == 0;
if(isEven) {
System.out.println("Input is an even number.");
}
else {
System.out.println("Input is an odd number.");
}
}
答案 1 :(得分:0)
为了进行数学运算,您必须首先检索 N mod(12)的模除结果,然后检查余数是否可被2-> ((N mod(12)mod(2))。
int remainderAfterDivisionByTwelve = n % 12; // n = 35 -> results in 11
boolean isRemainderEven = (remainder % 2) == 0; // remainder = 11 -> results in (1 == 0) false