使用 JavaScript 递归检查一系列操作是否产生给定数字
javascriptweb developmentobject oriented programming更新于 2025/10/10 0:44:17
从数字 1 开始,反复加 5 或乘以 3,可以产生无限数量的新数字。我们需要编写一个函数,给定一个数字,尝试找到产生该数字的加法和乘法序列。并根据是否存在这样的序列返回布尔值
例如,
数字 13 可以通过先乘以 3 然后再加 5 两次来得到,因此函数应该对 13 返回 true。而数字 15 根本无法得到,因此函数应该对 15 返回 false。
方法
我们将使用递归方法,反复尝试所有导致所需解决方案的可能性。此方法的代码将是 −
示例
const sequenceExists = (num, curr = 1) => {
if(curr > num){
return false;
};
if(curr === num){
return true;
};
return sequenceExists(num, curr+5) || sequenceExists(num, curr*3);
};
console.log(sequenceExists(18));
console.log(sequenceExists(15));
console.log(sequenceExists(32));
console.log(sequenceExists(167));
console.log(sequenceExists(17));
console.log(sequenceExists(1119));
输出
控制台中的输出将是 −
true false true true false true
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

