【发布时间】:2019-03-12 12:29:52
【问题描述】:
我编写了一个简单的 javascript 程序来执行递归。由于某种原因,它没有像我期望的那样工作。在递归的一个级别上,当我应该得到 cd 时,我得到 bcd。
任何帮助将不胜感激。
function recursion_test(i_s) {
console.log('starting string:' + i_s);
if (i_s.length <= 1) {
console.log('base case: ' +i_s);
return
} else {
midPoint = Math.floor(i_s.length /2);
console.log('mid:' + midPoint, 'l: ' + i_s.substring(0,midPoint), ' r: '+ i_s.substring(midPoint, i_s.length));
recursion_test(i_s.substring(0, midPoint));
recursion_test(i_s.substring(midPoint, i_s.length));
}
}
var start_str = "abcd";
console.log("Done: " + recursion_test(start_str));
The starting string:abcd
rec_test:32 mid:2 l: ab r: cd
rec_test:26 starting string:ab
rec_test:32 mid:1 l: a r: b
rec_test:26 starting string:a
rec_test:28 base case: a
rec_test:26 starting string:b
rec_test:28 base case: b
rec_test:26 starting string:bcd
rec_test:32 mid:1 l: b r: cd
rec_test:26 starting string:b
rec_test:28 base case: b
rec_test:26 starting string:cd
rec_test:32 mid:1 l: c r: d
rec_test:26 starting string:c
rec_test:28 base case: c
rec_test:26 starting string:d
rec_test:28 base case: d
rec_test:40 Done: undefinedoutput:
【问题讨论】:
-
欢迎来到 SO!恐怕我不遵循此功能的意图。您能描述一下您希望它如何工作吗?
-
只是一个递归分解字符串并打印每个字符的玩具程序
标签: javascript recursion