PAT初級(jí)刷題思路匯總

1036?

輸入時(shí)忽略某字符:

cin.ignore()

或者直接用scanf

1021 個(gè)位數(shù)統(tǒng)計(jì)

用一個(gè)計(jì)數(shù)器數(shù)組來(lái)統(tǒng)計(jì)每個(gè)數(shù)字出現(xiàn)的頻率

1023 組個(gè)最小數(shù)

算法:用一個(gè)數(shù)組a存儲(chǔ)出現(xiàn)的數(shù)字?jǐn)?shù),輸入時(shí)同時(shí)獲得非0的min

輸出時(shí)先輸出一個(gè)min,然后從頭遍歷存儲(chǔ)數(shù)組——當(dāng)a[i]>0時(shí)輸出一個(gè)i并讓a[i]–

1043 輸出PATest

while scanf!=EOF——檢測(cè)輸入,當(dāng)沒有輸入時(shí)跳出循環(huán)

算法:如果當(dāng)前輸入的字母是PATest其中之一的話則直接讓字母對(duì)應(yīng)的計(jì)數(shù)器變量+1

輸出時(shí)依次輸出PATest,每輸出一個(gè)就讓對(duì)應(yīng)計(jì)數(shù)器減一

1009 說反話

while cin>>str自動(dòng)按空格切分并輸入到str

用一個(gè)stack儲(chǔ)存放進(jìn)來(lái)的str,對(duì)應(yīng)頭文件stack

1011 A+B和C

大整數(shù)直接用long long int

1004 成績(jī)排名

使用一個(gè)class數(shù)組student,用first和Last記錄當(dāng)前的最大和最小編號(hào),然后直接輸出即可

1038 統(tǒng)計(jì)同成績(jī)學(xué)生

用一個(gè)vector儲(chǔ)存輸入的成績(jī),然后用一個(gè)計(jì)數(shù)器數(shù)組儲(chǔ)存對(duì)應(yīng)每個(gè)數(shù)字出現(xiàn)的頻率

1031 查驗(yàn)身份證

對(duì)輸入的身份證號(hào)進(jìn)行檢查:

如果前十七位發(fā)現(xiàn)字母直接break,反之則按照權(quán)重計(jì)算出當(dāng)前的數(shù)temp,加到checkCount中,算完之后對(duì)11取mod

用數(shù)組checkNum記錄計(jì)數(shù)器i對(duì)應(yīng)的輸入ID是否合法,合法為1不合法為2

如果循環(huán)沒跑完則直接記為0

跑完了則檢驗(yàn)最后一位是否符合

1008 數(shù)組元素循環(huán)右移

寫一個(gè)函數(shù)讓數(shù)組整體右移一次,具體做法是從后往前處理以免造成覆蓋

需要偏移shift位就讓這個(gè)函數(shù)執(zhí)行shift次

1017 A除以B

對(duì)于巨大的整數(shù),作為string輸入

從第一位開始,每次都執(zhí)行temp=temp*10+下一位操作,然后每執(zhí)行完一次直接取余數(shù)

1022 D進(jìn)制

用stack做進(jìn)制轉(zhuǎn)換——連續(xù)取余,然后將mod推入stack

1027 輸出沙漏

總星號(hào)數(shù)計(jì)算公式total=2*count^2-1

對(duì)于前count行,第i行輸入i個(gè)空格和2count-1-2i個(gè)星號(hào),注意結(jié)尾不要輸入空格

反向輸入同理

1032 挖掘機(jī)

用計(jì)數(shù)器數(shù)組計(jì)算各校得分,然后搜索得分最高的學(xué)校及其總分

1042 字符統(tǒng)計(jì)

寫個(gè)函數(shù)判斷是否為字母

使用map<char,int> frequency,如果s[i]是字母則frequency[s[i]]++

map<char,int>::iterator it

it->first為字母,it->second為出現(xiàn)個(gè)數(shù)

1029 舊鍵盤

首先全部轉(zhuǎn)換為大寫

用一個(gè)set來(lái)統(tǒng)計(jì)數(shù)字(去重)——set.insert返回的是一組pair,使用second返回插入成功與否的提示,如果插入成功則推入候補(bǔ)向量中

1007 素?cái)?shù)對(duì)猜想

先生成素?cái)?shù)列表,然后再檢驗(yàn)素?cái)?shù)對(duì)

1013 數(shù)素?cái)?shù)

生成素?cái)?shù)列表,然后輸出即可——注意輸出格式

1028 人口普查

定義一個(gè)類elder,建立一個(gè)函數(shù)成員too young,判斷當(dāng)前最年輕和最年長(zhǎng)的

注意年齡計(jì)算公式是否合法

1005 3n+1繼續(xù)

使用計(jì)數(shù)數(shù)組,把每一步產(chǎn)生的中間值tmp記錄到計(jì)數(shù)數(shù)組中

f[tmp]=1

如果計(jì)數(shù)數(shù)組里沒有,!f[input[i]],就是關(guān)鍵數(shù),推入輸出向量中

1019 數(shù)字黑洞

先把輸入的數(shù)字每一位都保存到數(shù)組中,然后排序

按從小到大和從大到小分別還原得到big和small

輸出方式printf(%04d-%04d=%04d\n)

1010

使用bool型標(biāo)記變量flag

1030 完美數(shù)列

輸入后排序,然后兩層嵌套循環(huán)

maxlen=0,for i=0(for j=i+maxlen) if maxlen<j-i maxlen=j-i

1020 月餅

sort的比較函數(shù)cmp——return a<b為升序排列

輸出保留兩位小數(shù)printf %.2f

注意為了保證精度,全程使用double

1003 我要通過

對(duì)于xPATx形式,P的個(gè)數(shù)與A的個(gè)數(shù)乘積應(yīng)該等于T的個(gè)數(shù)

1014 福爾摩斯

盡量用For循環(huán),然后求星期的時(shí)候兩個(gè)序列一起往前走(只考慮字符一一對(duì)應(yīng)的情況)

1025 反轉(zhuǎn)鏈表

用數(shù)組addr保存每個(gè)鏈表在向量中的位置,對(duì)應(yīng)temp.address

int count=0

vinput.pushback temp

addr[temp.address]=count++

memset來(lái)自于memory.h

遍歷時(shí)從初始地址進(jìn)入,在input中找到對(duì)應(yīng)鏈表后推入vector中

p=init

int pos=addr[p]

linknode.pushback vinput[pos]

p=vinput[pos].next

系統(tǒng)自帶reverse函數(shù),來(lái)自頭文件algorithm

1045 快速排序

主元的條件:恰好位于正確的順序上,且為當(dāng)前最大元??

1015 德才論

重寫sort cmp函數(shù)

1044 火星數(shù)字

getline(cin,input[i](字符串),‘\n’)注意第一個(gè)可能是廢的

獲取子字符串的方法:string.substr(begin,end)

另外注意高位為整數(shù)(恰好為26)低位為0時(shí)不要輸出

1040 有幾個(gè)PAT

從后往前數(shù),PAT的數(shù)量等于P的數(shù)量乘A再乘T

if i=T numT++

if i=A numAT+=numT

if i=P numPAT+=numAT

1033 舊鍵盤打字

getline讀取一行

定義一個(gè)判斷函數(shù)notbad,對(duì)一個(gè)字符搜索bad字符串:

如果有大寫,且+在bad里則返回false

全部轉(zhuǎn)化為小寫再一一判斷

判斷通過之后直接用putchar輸出即可

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,546評(píng)論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,570評(píng)論 3 418
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,505評(píng)論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,017評(píng)論 1 313
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,786評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,219評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,287評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,438評(píng)論 0 288
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,971評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,796評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,995評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,540評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,230評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,918評(píng)論 1 286
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,697評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,991評(píng)論 2 374

推薦閱讀更多精彩內(nèi)容