FZU 1036 四塔問題(規律)

2021-07-28 11:40:15 字數 892 閱讀 9845

「漢諾塔」,是乙個眾所周知的古老遊戲。現在我們把問題稍微改變一下:如果一共有4根柱子,而不是3根,那麼至少需要移動盤子多少次,才能把所有的盤子從第1根柱子移動到第4根柱子上呢?

為了程式設計方便,您只需要輸出這個結果mod 10000的值。

input

該題含有多組測試資料,每組乙個正整數n。(0< n<=50000)

output

乙個正整數,表示把n個盤子從第1根柱子移動到第4根柱子需要的最少移動次數mod 10000的值。

sample input

15sample output

129解題思路:

把前面幾個算出來,得到如下規律:

f[1] : 0 +2^0=1;

f[2] : 1 +2^1=3;

f[3] : 3 +2^1=5;

f[4] : 5 +2^2=9;

f[5] : 9 +2^2=13;

f[6] : 13+2^2=17;

f[7] : 17+2^3=25;

f[8] : 25+2^3=33;

f[9] : 33+2^3=41;

f10] : 41+2^3=49;

f[11]: 49+2^4=65;

即,f[i]-f[i-1]的值是有規律的,1個2^0,2個2^1,3個2^2,4個2^3,5個2^4以此類推。

#include

#include

using

namespace

std;

const

int n=2e5+5;

int n,f[n];

void init() }

int main()

FZU1036 四塔問題

problem 1036 四塔問題 漢諾塔 是乙個眾所周知的古老遊戲。現在我們把問題稍微改變一下 如果一共有4根柱子,而不是3根,那麼至少需要移動盤子多少次,才能把所有的盤子從第1根柱子移動到第4根柱子上呢?為了程式設計方便,您只需要輸出這個結果mod 10000的值。該題含有多組測試資料,每組乙個...

FZU 1036 四塔問題

problem 1036 四塔問題 漢諾塔 是乙個眾所周知的古老遊戲。現在我們把問題稍微改變一下 如果一共有4根柱子,而不是3根,那麼至少需要移動盤子多少次,才能把所有的盤子從第1根柱子移動到第4根柱子上呢?為了程式設計方便,您只需要輸出這個結果mod 10000的值。該題含有多組測試資料,每組乙個...

FZU 1062 洗牌問題(打表找規律)

problem description 設2n張牌分別標記為1,2,n,n 1,2n,初始時這2n張牌按其標號從小到大排列。經一次洗牌後,原來的排列順序變成n 1,1,n 2,2,2n,n。即前n張牌被放到偶數字置2,4,2n,而後n張牌被放到奇數字置1,3,2n 1。可以證明對於任何乙個自然數n,...