2016-04-25 10 views
-3

乗算または除算演算子、組み込み関数、またはループを使用せずに2つの整数を掛ける必要があります。乗算または除算演算子またはループなしで2つの正の整数を複数にする方法

私はループで乗算を行うことができましたが、ループなしで乗算を行う方法はありません。ここで

は、ループと私のソリューションです:

Public Double(Double x, Double y) 
{ 
Double Result; 
Result =0; 
If(x==0 || y==0) 
{ 
    Result = 0; 
    } 
else 
{ 
    for(int i=0; i<=y; i++) 
    { 
    Result = Result + x; 
    } 
} 
     return Result; 
} 
+1

あなたはダブルスを受け入れ、そしてy'が整数である '場合は、まだあなたの方法でのみ動作します。実際に浮動小数点数をサポートする必要がありますか?また、負の数も正しくサポートされていません。 – Servy

+0

いいえ、私は整数を扱っていると考えてみましょう – toxic

+0

あなたのメソッドは、整数型を受け入れるようにしてください。浮動小数点型ではありません。 – Servy

答えて

0

あなたの機能であなたの「Y」変数が整数カウントとなり

 List<int> temp = new List<int>(); 
     temp.AddRange(Enumerable.Repeat(x,y)); 

     var result = test.Sum(); 

を以下のような何かを行うことができます。しかし、私は正確にあなたが探しているか分かりません

0

私は乗算や除算演算子、任意の組み込み関数、またはループを使用せずに2つの整数を掛ける必要があります。あなたの質問の条件を読ん

、私はここでのアイデアは、たとえば、計算のためのよりスマートな方法を使用することであると思いビット演算

How to perform multiplication, using bitwise operators?で回答をもとに、私はあなたの問題のために、次の解決策を提案する:

public int MultiplyBitwise(int a, int b) 
    { 
     int product = 0; 
     while (b > 0) 
     { 
      product += ((b & 1) > 0) ? a : 0; 
      a <<= 1; 
      b >>= 1; 
     } 

     return product; 
    } 
関連する問題