pat 1010(二分 進製轉換)

2021-09-11 01:41:46 字數 603 閱讀 5791

pat-1010

思路:用確定的進製找不確定的進製,先求出已知進製的數字n1的10進製的結果sum,用longlong表示,

接著確定n2的最小進製,遍歷n2陣列,找出最大的位數l。

所以n2的進製在(l+1,sum+1)範圍內,這樣就可以用二分法求解了。

#include#include#include#includeusing namespace std;

typedef long long ll;

ll num(char ch)

ll change(string ss,ll radix)

{ int len=ss.length(),i,j;

ll ans=0;

for(i=0;i>n1>>n2>>tag>>radix;

if(tag==2) sp(n1,n2);

ll tp,l=0,sum=change(n1,radix),r,mid;

for(i=0,len=n2.length();i>1;

tp=change(n2,mid);

if(tp==-1||tp>sum) r=mid-1;

else if(tp參考文章

PAT A1010 二分進製結合重點題

這道題而可以說是比較難的一道題,如果採用常規遍歷,會出現時長或者溢位的問題 示例中給出的思路很值得借鑑 個人通過該示例有以下幾個不同理解 1.有時候兩個不同進製的數對比,我們可以進行進製,轉化十進位制來進行比較 2.對於有些列舉或者尋找問題,為了不進行列舉遍歷,我們應該第一時間想到二分查詢 對於第一...

PAT A1010 二分進製結合重點題

這道題而可以說是比較難的一道題,如果採用常規遍歷,會出現時長或者溢位的問題 示例中給出的思路很值得借鑑 個人通過該示例有以下幾個不同理解 1.有時候兩個不同進製的數對比,我們可以進行進製,轉化十進位制來進行比較 2.對於有些列舉或者尋找問題,為了不進行列舉遍歷,我們應該第一時間想到二分查詢 對於第一...

PAT1010 Radix(進製轉換)

分析 給定一對正整數,例如6和110,這個等式6 110是否為真?答案是 是 如果6是十進位制數,110是二進位制數的話。現在對於任意一對正整數n1和n2,你的任務是找到乙個數字的進製,而另乙個數字的進製是給定的。分析 修改了一下,現在是24 25。1 首先確定讓你判斷的數的進製,它的下限應該是自身...