hdu4814 模擬(黃金分割進製轉換)

2021-06-22 23:14:19 字數 1508 閱讀 8285

題意:

給你乙個十進位制數,讓你把他轉化成q進製數,q是**分割比 = (1+√5)/2.

思路:首先要明確的就是雖然q是實數,但是依然可以轉換成q進製數,因為任何數num,都有 num = num * 1 => num = num * q^0,先把所有的數字都放在各位,然後在根據題目的要求吧他轉化成所有的數字都是0或者1,不能有兩個連續的1,首先題目給了我們兩個式子,經過簡單轉化就能得到這兩個式子

q^n = q^(n-1) + q^(n-2)

2*q^n = q^(n+1) + q^(n-2)

這樣對於全都轉換成0,1,我們可以先把所有的數字num都放在個位,然後在根據

2*q^n = q^(n+1) + q^(n-2)把大於1的數字分解,一直分解到所有數字小於等於1

對於連續的11我們可以q^n = q^(n-1) + q^(n-2)分解連續的1,有一點要注意的就是這兩個處理要同時做,因為分解11可能會產生大於1的數字,所以兩個一起弄(一起的意思就是while(!ok)),直到所有的都滿足條件就行了。

#include#includeint

main

() }

for(i=1;i<=100;i++)

if(ans[i] &&ans[i+1])

}intst,et;

for(i=100;i>=1;i--)

if(ans[i])

for(i=1;i<=100;i++)

if(ans[i])

for(i=st;i>=et;i--)

puts("");

}return0;

}

數學模擬 HDU 4814

題意很簡單 給定乙個十進位制數,要求輸出在 1 sqrt 5 2進製中的數的表示。1 2 11 100 由於x的0次冪等於1 所以完全可以把n當成對應的x進製數的個位 現在要做的就是把這個數轉化成二進位制 題目給出的公式可以在兩邊同時乘x的若干次冪 那麼這兩個式子就變成了 x i 1 x i x i...

HDU 4814 數學 進製轉換

hdu 4814 題意大體是 給你乙個數要你轉換成phi進製,且不能出現11的情況 解題思路就是 建立乙個陣列a i j i表示phi的i次方,j表示這一項的係數 一開始把整個數n可以看成 n phi 0存入到陣列中 再 通過給的兩個公式 2 phi i phi i 1 phi i 2 phi i ...

HDU 5983 模擬魔方 模擬

題意是說給定乙個 2 2 魔方的各個面的情況,問是否能轉動不超過一次使得魔方復原。思路是先在輸入的時候統計一下已完成的面數,要想以最多一次的轉動使得魔方復原,那麼已完成的面數只能是 2 面或者 6 面,此處可剪枝。若已完成 6 面,那麼一定可以復原 若已完成 2 面,則要用一次轉動完成其他六面,開始...