我正在通过雄辩的JavaScript,并且有一个程序检查乘以3和加5的任意组合是否产生目标值:
但是这个函数并没有给我最短的可能(序列)。
我想不出获得尽可能短的解决方案的逻辑。如何更改此代码以为我提供最短路径?
function find_solution(target) {
function find(current, history) {
if (target === current) {
return history;
} else if (target < current) {
return null;
} else {
return find(current + 5, `(${history} + 5)`) || find(current * 3, `(${history} * 3)`);
}
}
return find(1, '1');
}
console.log(find_solution(24));
牛魔王的故事
相关分类