我正在解决一个冰雹问题,但如果冰雹以x
1
的值
我认为可以确定,如果我改变奇数和偶数,并按照这样反转等式:
function r(len, prev, isEven) {
if(len < 1) return prev;
if(isEven) {
return r(len - 1, prev * 2, !isEven);
} else {
return r(len - 1, (prev - 1) * 3, !isEven);
}
}
现在我意识到它不仅仅是替代seq。我应该在这个问题中应用什么数学概念。
示例:
如果Len = 8,答案是6
自:
6 - &gt; 3 - &gt; 10 - &gt; 5 - &gt; 16 - &gt; 8 - &gt; 4 - &gt; 2 - &gt; 1
答案 0 :(得分:2)
输出2^len
:)
想象一下,对于len = 8
,6
是一个有效的答案,因为6 -> 3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1
再次,2^len
= 2^8
= 256
也有效,因为256 -> 128 -> 64 -> 32 -> 16 -> 8 -> 4 -> 2 -> 1
答案 1 :(得分:1)
function r(len , pre){
if (len <1) return prev
if ((pre-1)/3 == 1 && (pre-1)%3== 0) || ((pre-1)/3 > 1 && (pre-1)%3 != 0) || (pre<=3 && pre>=1) {
return r(len-1 , 2*pre)
}
elsif((pre-1)/3 > 1 && (pre-1)%3 == 0){
return r(len-1 , (pre-1)/3)
}
}