7

更新。这个问题没有问题。见第一条评论。

我试图用 jsfiddle.net 找出这段代码,但是当我运行它时,它会触发连接到我计算机的实际打印机。我将打印更改为“警报” http://jsfiddle.net/eZ3jQ/,它返回 (((1 * 3) + 5) * 3)。然而,当返回调用 find 时,我预计它会再次运行 find 。

有没有办法让程序继续运行?

function findSequence(goal) {
  function find(start, history) {
    if (start == goal)
      return history;
    else if (start > goal)
      return null;
    else
      return find(start + 5, "(" + history + " + 5)") ||
             find(start * 3, "(" + history + " * 3)");
  }
  return find(1, "1");
}

print(findSequence(24));
4

2 回答 2

10

好吧,除了不需要的修复之外,让我提个建议。

HTML

<div id="logs"></div>

JS

var logs=document.getElementById('logs');
function logIt(msg){
    var e=document.createElement('div');
    e.innerHTML=msg;
    logs.insertBefore(e,logs.firstChild);
}

预先设置消息的日志功能,非常有用,因此您可以跟踪事情。警报很讨厌:P

于 2011-04-04T01:06:03.273 回答
0

HTML:

<div id="log"></div>

JS:

var log = function(msg) {
    var elem = document.getElementById('log');
    elem.innerHTML += '<p>' + msg + '</p>';
};
于 2015-06-02T03:49:03.600 回答