如何列出整数输入的偶数和奇数位数

时间:2016-03-17 07:22:48

标签: java for-loop while-loop

好的,我的问题是如何显示单个int输入的奇数和偶数,而不是整个输入。这是在使用" for"或"而"循环和%调制器。例如,程序要求用户输入正整数,然后它将读取每个数字并列出偶数和奇数位。我无法找到一个读取除.charAt()之外的每个字符的方法,但我无法使其工作。这是我的失败尝试。注意:我不能使用%调制器因为idk读取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;
    }

3 个答案:

答案 0 :(得分:0)

if语句可以决定数字是奇数还是偶数。至于 for 语句,为了在整个数组中运行它,你可以使用这样的代码:

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

}

答案 1 :(得分:0)

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;
}

答案 2 :(得分:0)

为此,您可以使用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