四塔问题
“汉诺塔”,是一个众所周知的古老游戏。现在我们把问题稍微改变一下:如果一共有4根柱子,而不是3根,那么至少需要移动盘子多少次,才能把所有的盘子从第1根柱子移动到第4根柱子上呢? 为了编程方便,您只需要输出这个结果mod 10000的值。 Input Output Sample Input 15 Sample Output 129 |
解题思路:
n 1:0+2^0=1;
n 2: 1+2^1=3;
n 3: 3+2^1=5;
n 4: 5+2^2=9;
n 5: 9+2^2=13;
n 6: 13+2^2=17;
n 17+2^3=25;
n 8: 25+2^3=33;
n 9: 33+2^3=41;
n 10: 41+2^3=49;
由上式发现了算法
F(n) = F(n-1) + 2^k
并且发现 2^k 一共要循环使用上 k+1次,之后k++。
根据这个公式即可求出F(n)%10000的值是多少了。