1
私はここに見られるalgorythmを移植しようとしていますhttps://ideone.com/26G1fB(Pythonで書かれています)はjavascriptに移植されています。javascriptで関数呼び出しrecusriveはどのように動作しますか
def divide(arr, depth, m):
if len(complements) <= depth:
complements.append(2 ** (depth + 2) + 1)
complement = complements[depth]
for i in range(2):
if complement - arr[i] <= m:
arr[i] = [arr[i], complement - arr[i]]
divide(arr[i], depth + 1, m)
m = int(raw_input())
arr = [1, 2]
complements = []
divide(arr, 0, m)
print arr
私はそれで、未来た:
var bracketize = function(arr, depth, m) {
if (complements.length <= depth) {
complements.push(2 ** (depth +2) + 1)
}
var complement = complements[depth]
for (i = 0; i < 2; i++) {
if (complement - arr[i] <= m) {
arr[i] = [arr[i], complement - arr[i]]
bracketize(arr[i], depth + 1 , m)
}
}
}
var m = 16
var arr = [1, 2]
var complements = []
bracketize(arr, 0, m)
console.log(JSON.stringify(arr))
// expected result [[[[1, 16], [8, 9]], [[4, 13], [5, 12]]], [[[2, 15], [7, 10]], [[3, 14], [6, 11]]]]
// actual result : [[[[1,16],8],4],2]
ここjsfiddle https://jsfiddle.net/9umgwhoa/
をJSのpython対再帰呼び出しを行う方法で何かのように見えるが、私は何を把握することはできません。
2コードの嘘との違いは
質問は何ですか? "任意のポインタ"はかなり広いです。 – evolutionxbox
申し訳ありませんが、疑問があったはずです:実際の結果の代わりに私のコードから期待される結果を得るには?しかし、私が望むなら、もし可能ならば、なぜそれがうまくいかなかったのかを考えてください。 –
ループのi宣言の中に 'var'が足りないだけでした – Lixus