1つの関数を書いて、2つの整数の和を求めて、関数の体内で+、-、×、÷

1178 ワード

分析:これは発散思考を考察する興味深いテーマです.私たちが慣れているものが制限されているとき、どのように通常を突破して考えるかが、この問題を解決する鍵です.
数字を演算するには,四則演算のほかにビット演算しか残っていない.
 1 int AddWithoutArithmetic(int num1, int num2)
2 {
3 if(num2 == 0)
4 return num1;
5
6 int sum = num1 ^ num2;
7 int carry = (num1 & num2) << 1;
8
9 return AddWithoutArithmetic(sum, carry);
10 }