//檢查數字是偶數還是奇數,沒有/或%運算符。stackoverflow錯誤:檢查號碼是偶數還是奇數沒有%或/運算符
public class EvenOrOdd {
public static int CheckEvenOrOdd(int num) {
if (num > 2) {
int number = num - 2;
num = CheckEvenOrOdd(number);
}
return num;
}
public static void main(String[] args) {
int num = CheckEvenOrOdd(5322221);
if (num == 1) {
System.out.println("Odd number");
} else {
System.out.println("Even number");
}
}
}
我定義堆棧大小200米爲-xss200m但這個方案開啓了內存不足的錯誤和StackOverflow的錯誤,如果數量是大於5322221.
告知如何解決這個問題,找到數爲偶數或奇數。
你可以避免內存問題,使用你當前的實現,通過改變它從遞歸到迭代。另外,考慮按位運算符。 – 2013-02-17 16:51:06
您可以使用'&1'來檢查它是偶數還是奇數。 [最近有個問題](http://stackoverflow.com/questions/14905643/what-does-this-boolean-return-mean/14905686#14905686) – 2013-02-17 16:51:55
你可以實現 - if((number%2) == 0) { System.out.println(「偶數」); } else { System.out.println(「Odd number」); } – user1428716 2013-02-17 16:55:36