首页 > 解决方案 > 将整数除以 12 并显示余数是奇数还是偶数

问题描述

尝试创建一个程序,要求用户输入 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

    }

}

标签: javadivisioninteger-division

解决方案


您可以使用模运算符来检查数字是偶数还是奇数。假设你有

int n = 7;

应用模运算符

int r = n % 2;

将产生1- 发生的事情是这样的:

除以n2返回余数。

所以,我们知道,如果一个% 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.");
    }
}

推荐阅读