hdu4937(進製轉換)

2021-06-23 06:09:22 字數 1246 閱讀 8018

題意:給乙個十進位制n,在某種進製下它只包含3、4、5、6,問這樣的進製有幾種

思路:進製轉化的題目,如果直接暴力方法,那麼肯定會超時。n = a0 + a1*x + a2*x^2 + a3*x^3 +.....+ an*x^n(x是基數) (n)10 = (an an-1 ...a0)x

先考慮(n)10 = (a0)x的情況,a0 = n && x > 10, 那麼只能是3,4,5,6, 而且情況有無數種;

在考慮(n)10 = (a1 a0)x的情況,n = a0+a1*x,然後解方程即可;

然後在考慮(n)10 = (a2 a1 a0)x的情況,n = a0 + a1*x + a2*x^2 ,然後解方程;

最後考慮x進製的n的位數大於3的情況,那麼x <= 10000, 在考慮到ai只能取3,4,5,6,x <= 7000 , 接下來就是暴力了。

**如下:

#include#include#include#include#include#include#include#include#include#include#include#define ll __int64

#define inf 0x7ffffff

#define eps 1e-9

#define pi acos(-1.0)

using namespace std;

int a[4]=;

ll n;

bool judge_twobit(int a0,int a1)

return false;

}bool judge_threebit(int a0,int a1,int a2)

}return false;

}int main()

int ans = 0;

int i,j,k;

for(i = 0; i < 4; i++)

for(j = 0; j < 4; j++)

if(judge_twobit(a[i],a[j]))

ans++;

for(i = 0; i < 4; i++)

for(j = 0; j < 4; j++)

for(k = 0; k < 4; k++)

if(judge_threebit(a[i],a[j],a[k]))

ans++;

//cout<3)

ans++;

}printf("%d\n",ans);

}return 0;

}

hdu 進製轉換

problem description 輸入乙個十進位制數n,將它轉換成r進製數輸出。input 輸入資料報含多個測試例項,每個測試例項包含兩個整數n 32位整數 和r 2 r 16,r 10 output 為每個測試例項輸出轉換後的數,每個輸出佔一行。如果r大於10,則對應的數字規則參考16進製制...

HDU 2031 進製轉換

problem description 輸入乙個十進位制數n,將它轉換成r進製數輸出。input 輸入資料報含多個測試例項,每個測試例項包含兩個整數n 32位整數 和r 2 r 16,r 10 output 為每個測試例項輸出轉換後的數,每個輸出佔一行。如果r大於10,則對應的數字規則參考16進製制...

進製轉換 HDU2031

problem description 輸入乙個十進位制數n,將它轉換成r進製數輸出。input 輸入資料報含多個測試例項,每個測試例項包含兩個整數n 32位整數 和r 2 r 16,r 10 output 為每個測試例項輸出轉換後的數,每個輸出佔一行。如果r大於10,則對應的數字規則參考16進製制...