1

X 是一种新的编程语言,它只允许以下操作 -

  1. 您可以将零分配给变量(如 a = 0 )
  2. 您可以将一个变量分配给另一个变量( a=b )
  3. 您可以进行后增量操作( a++ )
  4. 该语言中不存在负数。所以负数取0。
  5. loop(10){ //code } 将执行代码十次。
  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 回答