寫一個函數,求兩個整數之和,要求在函數體內不得使用+、-、*、/四則運算符號
第一直覺是使用位運算,但是位運算沒有進位,只要加上進位的為題就可以了
PRivate static int add(int n1, int n2) { int num, temp; do { num = n1 ^ n2; temp = (n1 & n2) << 1; n1 = num; n2 = temp; } while (n2 != 0); return num; }然后順便解決一下減法的問題:減法可以使用加上負數的原則。~n+1就是n的負數。
private static int decrease(int n1, int n2) { int result=add(n1,~n2+1); return result; }新聞熱點
疑難解答