如何仅使用循环和增量来实现减法

Nea*_*eal 7 loops subtraction

这是一个面试问题.我们只有两个结构

  1. loop(a) 意味着循环一次.
  2. increment(a) 递增a.

因此,为了实现a + b,可以编写

loop(a) {inc(b)} 
return b;
Run Code Online (Sandbox Code Playgroud)

问题是如何实施ab.

Ale*_* K. 11

怎么样;

a = 10
b = 8
result = 0

loop(b) {
   last = 0
   times = 0;
   loop(a) {
      last = times
      times = inc(times)
   }
   result = a = last
}

result is 2
Run Code Online (Sandbox Code Playgroud)

Js例如;

var a = 10;
var b = 8;
var result;

for (var _b = 0; _b < b; _b++) {
    var last = 0, times = 0, loopa = 0;
    for (var _a = 0; _a < a; _a++) {
        last = times;
        times = inc(times);
    }
    result = a = last;
}

function inc(i) {
    return i + 1;
}

print(result) // 2
Run Code Online (Sandbox Code Playgroud)