題意很簡單:給定乙個十進位制數,要求輸出在(1+sqrt(5))/2進製中的數的表示。
φ + 1 = φ 2 .11(φ) = 100(φ).
由於x的0次冪等於1 所以完全可以把n當成對應的x進製數的個位 現在要做的就是把這個數轉化成二進位制
題目給出的公式可以在兩邊同時乘x的若干次冪 那麼這兩個式子就變成了
x^(i+1) + x^i = x^(i+2)
2 * x^i = x^(i+1) + x^(i-2)
10^9大約是2^30,所以總長度不超高150,直接模擬就好了。
#include
#include
#include
#include
#include
#include
using
namespace
std;
int num[120];
int main()
memset(num,0,sizeof(num));
num[60]=n;
int tag=1;
while(tag)
}for(int i=0;i<119;i++)}}
int l,r;
for(int i=0;i<120&&num[i]==0;i++)l=i;
for(int i=119;i>=0&&num[i]==0;i--)r=i;
for(int i=r-1;i>l;i--)
printf("\n");}}
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 ...
hdu4814 模擬(黃金分割進製轉換)
題意 給你乙個十進位制數,讓你把他轉化成q進製數,q是 分割比 1 5 2.思路 首先要明確的就是雖然q是實數,但是依然可以轉換成q進製數,因為任何數num,都有 num num 1 num num q 0,先把所有的數字都放在各位,然後在根據題目的要求吧他轉化成所有的數字都是0或者1,不能有兩個連...
hdu多校(一)1009(棧模擬 數學)
leading robots 題意 已知機械人v t a tv t a t v t a t,現有n nn個機械人,給定機械人的當前位置pos itio nposition positi on,加速度a aa。問經過無限長的時間後,有多少個機械人當過第一位?思路 沒啥思路,最後肯定是a最大的機械人排在...