【问题标题】:How to list even and odd digits from integer inputs如何从整数输入中列出偶数和奇数
【发布时间】:2016-03-17 07:22:48
【问题描述】:

好的,所以我的问题是如何显示单个 int 输入的奇数和偶数而不是整个输入。这使用“for”或“while”循环和 % 调制器。例如,程序要求用户输入一个正整数,然后它会读取每个数字并列出偶数和奇数。除了 .charAt() 之外,我找不到读取每个字符的方法,但我无法使其工作。这是我的失败尝试。注意:我不能使用 % 调制器,因为没有任何方法可以读取 int 的每个数字。请帮忙,谢谢。

String = userEntry 
int r = userEntry.length() - 1;
System.out.print("The even numbers are ");

int c = 0; // 0 would count as even.
int size = 0;
while (size < r && c < 9)
{
    if (c == userEntry.charAt(size))
    {
        outputFile.print(" " + userEntry.charAt(size));
        System.out.print(" " + userEntry.charAt(size));
        size++;
    }
    else
    {
        c+=2;
    }

【问题讨论】:

  • 提示:a % b == a - (a / b) * b 用于正整​​数 ab
  • 嗯,好吧,让我想想……对不起,我以前从未上过 java 课
  • 你为什么不自己做作业呢?
  • 你的意思是像 number%2 == number - (number/2)*2???对不起,我迷路了......
  • 我正在考虑将其放入 if else if else 语句中...例如 if number %2 == 0 {number = even} else if number == 0 {number = even} else { number = odd} 但我认为它不会计算个位数,而是整个输入......

标签: java for-loop while-loop


【解决方案1】:

为此,您可以使用modulo 运算符。

public class Main {
    /** http://stackoverflow.com/q/36053971/6077352 */
    public static void main(String[] args) {
        int input = 123456789;
        while (input > 0) {
            if (input % 2 == 0) {
                System.out.println(input % 10 + " is even");
            } else {
                System.out.println(input % 10 + " is odd");
            }
            input = input / 10;
        }
    }
}

示例输出:

9 is odd
8 is even
7 is odd
6 is even
5 is odd
4 is even
3 is odd
2 is even
1 is odd

【讨论】:

    【解决方案2】:

    if 语句可以判断数字是奇数还是偶数。至于 for 语句,为了在整个数组中运行它,您可以使用如下代码:

    for(*variable* = 0; *variable* < userEntry.length; *variable*++)
    {
    
    }
    

    【讨论】:

      【解决方案3】:

      mod 运算符为您提供对 int 进行除法的余数。 所以任何数字 mod 10 都会返回最后一个数字,因为除以小于 10 的数字的余数就是数字本身。所以30%10=032%10=2。所以你可以使用mod来分隔数字。

      然后对于要检查的每个数字是偶数还是奇数。偶数可以被 2 整除,所以number%2 应该没有余数。

      然后您必须将您的数字除以 10 才能对十列执行相同的操作,然后再对百列执行相同的操作,依此类推。这应该适合你。

       while (number>0) {
          if ((number%10)%2==0) {
              System.out.println(number % 10 + "even"); 
          }
          else {
              System.out.println(number % 10+ "odd");
          }
      number = number / 10;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-28
        • 2022-12-17
        • 2014-06-01
        相关资源
        最近更新 更多