私は 9 年生です。数学の先生から、+
サインイン C プログラムを使用せずに数字を追加するように言われました。
試してみ a - (-b) = a + b;
ましたが、数学の先生は他の選択肢を求めています。
私は 9 年生です。数学の先生から、+
サインイン C プログラムを使用せずに数字を追加するように言われました。
試してみ a - (-b) = a + b;
ましたが、数学の先生は他の選択肢を求めています。
あなたのCプログラムでこの関数を使用してください
int Add(int a, int b)
{
while (b)
{
// carry now contains common set bits of "a" and "b"
int carry = a & b;
// Sum of bits of "a" and "b" where at least one of the bits is not set
a = a ^ b;
// Carry is shifted by one so that adding it to "a" gives the required sum
b = carry << 1;
}
return a;
}
ビットごとの AND演算子と再帰^
を使用する&
int add(int x, int y){
return y == 0 ? x : add( x ^ y, (x & y) << 1);
}
PS: これは vikas によって提案されたアルゴリズムの再帰バージョンです。
再帰を使用するJavaで-
public static int add(int a, int b){
if(b == 0) return a;
int sum = a ^ b;
int carry = (a & b) << 1;
return add(sum, carry);
}
C-で
int add(int a, int b){
if(b == 0) return a;
int sum = a ^ b;
int carry = (a & b) << 1;
return add(sum, carry);
}
Anti Log()
あなたを使ってそれを行うことができます
Temp= Anti Log(a)* Anti Log(b);
a+b value is equals to log(Temp);
double ではなく整数に対して機能します。