數學模擬 HDU 4814

2021-08-07 11:25:44 字數 787 閱讀 3306

題意很簡單:給定乙個十進位制數,要求輸出在(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最大的機械人排在...