我正在尝试用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;
答案 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;