6是十進位制數,110是二進位制數
得分容易,滿分難,坑多,基本思路:將給定的源運算元按照指定的進製轉換成十進位制,然後在找出乙個進製使目標運算元轉化成十進位制後與源運算元相等
1. 進製的上下限不是隨便取的,下限應該是目標運算元中的最大位+1,如果小於這個數是沒有意義的,上限應該是源運算元轉換成十進位制後的數,因為如果大於這個數也沒意義,因為個位數最大是36,再大就成10,其中的1轉換成十進位制已經超過源運算元的大小了。
2. 轉換成十進位制後會溢位成負數,所以設為long long,但是long long 依然會有溢位的情況,溢位後為負,所以為負的時候進製不符合要求,應該找更小的進製。
3. 如果暴力迴圈的話會導致超時,所以使用二分法,但是注意題目中說到多個進製滿足的時候輸出最小的進製,所以應該先對前36個進製進行暴力破解(個位最大為36),然後再使用二分法
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
#define nmax 100
long
long
changeradix
(string num,
int radix)
return sum;
}int
main()
else
if(tagnum[i]
>=
'a'&& tagnum[i]
<=
'z')
} minradix +=1
;//遍歷進製,看看哪個進製轉換十進位制數後相等
for(
int i = minradix; i <=36;
++i)
}long
long low =
37, high = srcnum_ch+
1,mid;
while
(low <= high)
if(tagnum_ch < srcnum_ch || srcnum_ch<0)
low = mid +1;
else
high = mid -1;
} cout <<
"impossible"
;return0;
}
PAT甲級真題1153
pat 准考證號由 44 部分組成 第 11 位是級別,即 t 代表頂級 a 代表甲級 b 代表乙級 第 2 42 4 位是考場編號,範圍從 101101 到 999999 第 5 105 10 位是考試日期,格式為年 月 日順次各佔 22 位 最後 11 1311 13 位是考生編號,範圍從 00...
PTA刷題 甲級 拓撲排序
拓撲排序以前不考,現在考的頻率好高。其實沒啥難的,抓住一點 入度為0時,才能被輸出 或者被選中,乙個意思 所以要用個int indegree來維護入度的數量。當要我們判斷乙個圖能不能是拓撲排序 即沒有環 就是看入過佇列的節點數是不是就是n。例題 大意 給你乙個圖,讓你判斷能不能拓撲排序。輸入資料 輸...
PAT甲級真題 1014 Wait In Line
一 題目 二 思路 題意 模擬排隊,但和實際排隊的區別在於 思路 模擬排隊,記錄消費者辦理結束所需的總時間 以分鐘為單位,最後轉換為時刻,由等待時間 辦理時間組成 若等待時間wt 540,則給予sorry 否則,根據總時間sum算出相應時刻 注意 當兩個視窗同樣長且均未滿時,要同時入隊消費者,使之隊...