1

X は、次の操作のみを許可する新しいプログラミング言語です。

  1. 変数にゼロを割り当てることができます ( a = 0 のように)
  2. ある変数を別の変数に割り当てることができます ( a=b )
  3. ポストインクリメント操作を実行できます ( a++ )
  4. この言語には負の数は存在しません。したがって、負の数は 0 として扱われます。
  5. loop(10){ //code } はコードを 10 回実行します。
  6. 比較演算子、if 条件演算子、またはビット演算子を使用することはできません。

この言語で除算を実装する関数を作成します。

これまでの私の解決策 -

割り算は引き算の繰り返しなので、まず引き算を実装します。

function decrement(var a)
{
    var x;
    loop(a)
    {
        x = a++;
     }
     return x;
}

function subtract( var a, var b )
{
    //returns a-b
     var x;
     loop(b)
     {
         x=decrement(a);
     }
     return x;
}

さて、この減算を使用して除算機能を実装するにはどうすればよいですか?

または、この減算を使用しない他のソリューションも問題ありません。

4

1 に答える 1

2
// Your function (corrected)
function decrement(var a)
{
    var x = 0;
    loop(a) 
    {
        x++; a++;
    }
    return x;
}

// Your function
function subtract(var a, var b)
{
    var x;
    loop(b)
    {
        x = decrement(a);
    }
    return x;
}

// This function returns the correct value if a is divisible by b. Otherwise it returns truncate(a/b) + 1
function divide(var a, var b)
{
    var c;

    c = 0;
    loop(a)
    {
        a = subtract(a, b);
        c++;
    }
}
于 2012-08-21T18:00:00.797 に答える