我正在使用最小步骤减少到一个算法。我尝试实现但我在javascript中发现了一个问题。当我使用10
数字
我的函数提供输出4
..但预期为3
为什么3?
因此计数为3
,但我的函数为4
的引用
Given an integer N and a set of operations, reduce N to 1 in the least amount of steps
function abc(n) {
var count = 0;
while (true) {
if (n === 1) {
break;
}else if (n % 3 == 0) {
count++;
n = n / 3;
} else if (n % 2 == 0) {
count++
n = n / 2
} else {
count++
n = n - 1;
}
}
return count;
}
答案 0 :(得分:0)
算法是:
您为N = 10运行的步骤是:
5
。4
。 2
。2
。需要4个步骤。
如果您有兴趣获得最快的方法将N减少为1,而不仅仅是任何方式,那么您可能会对Breadth-first search算法感兴趣。