在Java中用整数统计偶数位数

时间:2018-02-20 15:46:23

标签: java

我正在尝试用Java编写一个方法,如果一个整数只包含偶数位数,它将返回true。

例如,当输入整数为2468时,该方法将返回true。 另一个例子,如果输入整数是-68,该方法将返回true。如果整数由24638组成,则该方法应返回false。

我也试图只使用整数。我不想使用ToString()将整数的长度作为我在循环中的条件,我也不想使用数组。

我搜索了论坛,但大多数回复似乎都使用了ToString()或我正在避免使用的数组。 我的代码如下:

int countEven = 0;
int countOdd = 0;
if (n == 0)
    countEven++;
while (n != 0)  {
    int lastdigit = n % 10;
    if (lastdigit == 0 || lastdigit % 2 == 0)
        countEven++;
    else
        countOdd++;
    n = n /10;
}
if (countEven >= 0); return true;  

2 个答案:

答案 0 :(得分:5)

您没有检查countodd的条件。假设数字是235.您的counteven将为1而countodd将为2.那么无论如何,您的最后一个if条件将返回true。相反,试试这个,

while(n != 0){
    int lastdigit = n % 10;
    if(lastdigit % 2 == 1)
        return false;
    n = n /10;
}
return true;

答案 1 :(得分:0)

问题是你的最后一个if语句是不正确的。

试试这个:

if (countOdd > 0)
    return false;
else
    return true;