gpt4 book ai didi

javascript - if-else-语句在回文函数中返回未定义

转载 作者:行者123 更新时间:2023-12-03 08:01:29 24 4
gpt4 key购买 nike

在我的回文函数中,if-else-statement返回未定义。基本上,我试图找到最大的三位数回文数。例如,使用两位数字:99 * 91 = 9009

var palindromic = function(n) {
var save,
result,
counter = 900;

var checker = function(string) {
s = string.toString();

if(!(s)) {
return true;
} else if(s[0] !== s[s.length - 1]) {
return false;
}
checker(s.slice(1, -1));
}

var recursive = function() {
result = counter * n;
if(counter === n) {
return;
} else if(checker(result)) { // this line of code here, undefined.
save = result;
}
counter++;
recursive();
}

recursive();
return save;
};

出了什么问题?欢迎任何帮助!

最佳答案

代码中有两个问题

  1. checker() 应将 return checker(s.slice(1,-1)); 作为最后一行。
  2. recursive() 中,当 checker(result) 为 true 时,recursive() 应该返回。

这是更正后的代码。

var palindromic = function (n) {
var save,
result,
counter = 900;

var checker = function (s) {
//s = string.toString();

if ( !(s) ) {
return true;
} else if ( s[0] !== s[s.length-1] ) {
return false;
}
return checker(s.slice(1,-1));
}

var recursive = function () {
result = counter * n;
if ( counter === n ) {
return;
} else if ( checker(result + "") ) { // this line of code here, undefined.
save = result;
return;
}
counter++;
recursive();
}

recursive();
return save;
};

输出:

palindromic(2)
2002
palindromic(3)
2772
palindromic(5)
5005
palindromic(6)
6006
palindromic(9)
8118
palindromic(23423)
188484881

关于javascript - if-else-语句在回文函数中返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34561630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com