Java実装は加減乗除を加算しない
1つの関数を書いて、2つの整数の和を求めて、関数の体内で+、-、*、/の4つの演算記号を使用してはいけないことを要求します.
コード#コード#
コード#コード#
/**
*
* @param n1
* @param n2
* @return
*/
public static int add(int n1, int n2) {
int sum = 0;
//
int carry = 0;
do {
// , ,
// 1+2,0001 + 0011,0001^0011=0010, 1+1 , 0
sum = n1 ^ n2;
// , ,
// 0001&0011=0001, 1+1 , ,
carry = (n1 & n2) << 1;
//
//
n1 = sum;
n2 = carry;
// ,
} while (n2 != 0);
return sum;
}
public static void main(String[] args) {
int result = add(1, 2);
System.out.println(result);
}