使用JavaScript递归检查一系列操作是否产生给定的数字
通过从数字1开始并重复加5或乘以3,可以产生无限数量的新数字。我们需要编写一个给定数字的函数,该函数试图查找产生该数字的加法和乘法序列。并根据是否存在这样的序列返回一个布尔值
例如,
可以通过先乘以3,然后再加5两次来获得数字13,因此该函数应对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
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短