計算機考研機試攻略 - 高分篇_第1頁
計算機考研機試攻略 - 高分篇_第2頁
計算機考研機試攻略 - 高分篇_第3頁
計算機考研機試攻略 - 高分篇_第4頁
計算機考研機試攻略 - 高分篇_第5頁
已閱讀5頁,還剩381頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

計算機考研機試攻略計算機考研機試攻略第1頁計算機考研機試攻略第1頁 LCM) 79 第6頁 LCM) 79 計算機考研機試攻略第6頁第第6頁 第7頁 第7頁錯誤!未定義書簽。第8頁錯誤!未定義書簽。第8頁首首先我們來看一下機試是怎樣的一種考核模式全國所有院校的機試都大同小異,大部分有自己OJ(OnlineJudge也就是在線代碼測評平臺)的學校都會采用OJ上做題的方式來進行考核。這種考核方式的好處是公開透明,機器進的DreamJudge一樣。沒有OJ的學校只能人工進行判題,人工判題的話,一方面是主觀性比較強,可能還會對其他方面進行考量,這個就需要自己去了解了??偟膩碚f,不論是OJ判題還是人工判題,代碼都要能通過測試用例才能得到分數(shù)。針對機試我們應該怎么去訓練提升自己呢首先,一定要做題,在上做題,不要自己埋頭看書,在不斷做題的過程中才能提升自己。如果非要用一個量化的標準來衡量的話,至少要在上做夠100題(也就是達到磚石II以上段位),才能保證你機試達到自己滿意的成績。題量是很關鍵的,看懂的題再多,都不如自己實際敲代碼去解決問題更穩(wěn)妥。解題速度也是很重要的其實解題速度和題量是正相關的,相信題量足夠的同學,解題的速度都不會太慢。機試一解題意慢、思考解法慢、敲代碼慢、調(diào)試慢,這樣一算下來,一道簡單的題都可能要一個小時才能寫出來,說不定題目還有坑點,再慢慢調(diào)試,基本上就涼了。第9頁首先我們來看一下機試是怎樣的一種考核模式全國所有院校的機試都大同小異,大部分有自己OJ(OnlineJudge也就是在線代碼測評平臺)的學校都會采用OJ上做題的方式來進行考核。這種考核方式的好處是公開透明,機器進的DreamJudge一樣。沒有OJ的學校只能人工進行判題,人工判題的話,一方面是主觀性比較強,可能還會對其他方面進行考量,這個就需要自己去了解了??偟膩碚f,不論是OJ判題還是人工判題,代碼都要能通過測試用例才能得到分數(shù)。針對機試我們應該怎么去訓練提升自己呢首先,一定要做題,在上做題,不要自己埋頭看書,在不斷做題的過程中才能提升自己。如果非要用一個量化的標準來衡量的話,至少要在上做夠100題(也就是達到磚石II以上段位),才能保證你機試達到自己滿意的成績。題量是很關鍵的,看懂的題再多,都不如自己實際敲代碼去解決問題更穩(wěn)妥。解題速度也是很重要的其實解題速度和題量是正相關的,相信題量足夠的同學,解題的速度都不會太慢。機試一解題意慢、思考解法慢、敲代碼慢、調(diào)試慢,這樣一算下來,一道簡單的題都可能要一個小時才能寫出來,說不定題目還有坑點,再慢慢調(diào)試,基本上就涼了。第9頁特別提醒:本書默認讀者是會C特別提醒:本書默認讀者是會C語言的基本語法的,比如if語句、for語句等等。準備好模板是至關重要的一般來說,機試都可以帶書和紙質(zhì)資料進入考場。所以提前把那些函數(shù)的用法和算法的模板準備好是很重要的,一方面是增加自己的信心,萬一沒記住還可以翻開來看一下。另外說不定考到原題或者類似的題,就可以直接秒殺了。多打比賽也是很重要的很多同學平時做的題很多,解題速度也挺快,但是一到比賽或者考試的時候就會卡題,在壓力的情況下發(fā)揮失常比比皆是,所以平時就要鍛煉自己的抗壓能力。上除了每個周定期舉辦的小白賽,還特別為大家準備了考研機試沖刺八套卷。在本書的最后,你可以看到關于考研機試沖刺八套卷的詳細信息。通過這八套卷的練習,相信會讓你的水平產(chǎn)生一個脫胎換骨的變化。建議選擇CodeBlocks作為平時敲代碼練習的IDE第10頁常見做題結(jié)果反饋Accepted:答案正確,恭喜你正確通過了這道題目。WrongAnswer:答案錯誤,出現(xiàn)這個錯誤的原因一般是你的程序?qū)崿F(xiàn)或思路出現(xiàn)了問題,或者數(shù)據(jù)范圍邊界沒有考慮到。多打比賽也是很重要的很多同學平時做的題很多,解題速度也挺快,但是一到比賽或者考試的時候就會卡題,在壓力的情況下發(fā)揮失常比比皆是,所以平時就要鍛煉自己的抗壓能力。上除了每個周定期舉辦的小白賽,還特別為大家準備了考研機試沖刺八套卷。在本書的最后,你可以看到關于考研機試沖刺八套卷的詳細信息。通過這八套卷的練習,相信會讓你的水平產(chǎn)生一個脫胎換骨的變化。準備好模板是至關重要的一般來說,機試都可以帶書和紙質(zhì)資料進入考場。所以提前把那些函數(shù)的用法和算法的模板準備好是很重要的,一方面是增加自己的信心,萬一沒記住還可以翻開來看一下。另外說不定考到原題或者類似的題,就可以直接秒殺了。特別提醒:本書默認讀者是會C語言的基本語法的,比如if語句、for語句等等。建議選擇CodeBlocks常見做題結(jié)果反饋Accepted:答案正確,恭喜你正確通過了這道題目。WrongAnswer:答案錯誤,出現(xiàn)這個錯誤的原因一般是你的程序?qū)崿F(xiàn)或思路出現(xiàn)了問題,或者數(shù)據(jù)范圍邊界沒有考慮到。第10頁第第11頁RuntimeError:運行時錯誤,出現(xiàn)這個錯誤的原因一般是數(shù)組越界或者遞歸過深導致棧溢出。PresentationError:輸出格式錯誤,出現(xiàn)這個錯誤的原因一般是末尾多了或少了空格,多了或少了換行TimeLimitExceeded:程序運行超時,出現(xiàn)這個錯誤的原因一般是你的算法不夠優(yōu)秀,導致程序運行時間過長。MemoryLimitExceeded:運行內(nèi)存超限,出現(xiàn)這個錯誤的原因一般是你的程序申請?zhí)罅丝臻g,超過了題目規(guī)定的空間大小。CompileError:編譯錯誤,這個不用說了吧,就是你的代碼存在語法錯誤,檢查一下是不是選擇錯誤的語言提交了。OutputLimitExceeded:輸出超限,程序輸出過多的內(nèi)容,一般是循環(huán)出了問題導致多次輸出或者是調(diào)試信息忘記刪除了。Submitting:提交中,請等待題目結(jié)果的返回,由于判題機有性能差異,所以返回結(jié)果的速度也不一樣,上做題一般瞬間就能出結(jié)果。以上幾種結(jié)果就是評判系統(tǒng)可能會返回的幾種常見結(jié)果。若返回Accept,那么你就可以拿到該題所有分數(shù),如果返回其他結(jié)果,則要看你報考學校的考試規(guī)則,是根據(jù)通過測試點的RuntimeError:運行時錯誤,出現(xiàn)這個錯誤的原因一般是數(shù)組越界或者遞歸過深導致棧溢出。PresentationError:輸出格式錯誤,出現(xiàn)這個錯誤的原因一般是末尾多了或少了空格,多了或少了換行TimeLimitExceeded:程序運行超時,出現(xiàn)這個錯誤的原因一般是你的算法不夠優(yōu)秀,導致程序運行時間過長。MemoryLimitExceeded:運行內(nèi)存超限,出現(xiàn)這個錯誤的原因一般是你的程序申請?zhí)罅丝臻g,超過了題目規(guī)定的空間大小。CompileError:編譯錯誤,這個不用說了吧,就是你的代碼存在語法錯誤,檢查一下是不是選擇錯誤的語言提交了。OutputLimitExceeded:輸出超限,程序輸出過多的內(nèi)容,一般是循環(huán)出了問題導致多次輸出或者是調(diào)試信息忘記刪除了。Submitting:提交中,請等待題目結(jié)果的返回,由于判題機有性能差異,所以返回結(jié)果的速度也不一樣,上做題一般瞬間就能出結(jié)果。以上幾種結(jié)果就是評判系統(tǒng)可能會返回的幾種常見結(jié)果。若返回Accept,那么你就可以拿到該題所有分數(shù),如果返回其他結(jié)果,則要看你報考學校的考試規(guī)則,是根據(jù)通過測試點的第11頁賬賬號就可以了。然后將代碼粘貼到右邊的輸入框里,在上面選擇使用哪種語言提交,C/C++/Java/Python,建議選擇C++提交,因為C++可以編譯C語言代碼。我們一般寫代碼為了方便,都會使用一點C++的特性來幫助我們快速解決一道題目。如果代碼里含有C++的特性卻選擇了C語言提交的話,會返回編譯錯誤的提示信息。做題頁面如下:第12頁做題頁面如下:賬號就可以了。然后將代碼粘貼到右邊的輸入框里,在上面選擇使用哪種語言提交,C/C然后將代碼粘貼到右邊的輸入框里,在上面選擇使用哪種語言提交,C/C++/Java/Python,建議選擇C++提交,因為C++可以編譯C語言代碼。我們一般寫代碼為了方便,都會使用一點C++的特性來幫助我們快速解決一道題目。如果代碼里含有C++的特性卻選擇了C語言提交的話,會返回編譯錯誤的提示信息。輸出與輸入表示方式一致scanf輸入解析1.intyear,month,day;2.scanf("%d-%d-%d",&year,&month,&day);這樣可以直接解析出來第13頁輸入一行字符串帶空格的話,使用gets,scanf遇到空格會自動結(jié)束輸出與輸入表示方式一致scanf輸入解析1.intyear,month,day;2.scanf("%d-%d-%d",&year,&month,&day);這樣可以直接解析出來輸入一行字符串帶空格的話,使用gets,scanf遇到空格會自動結(jié)束第13頁intNNint要輸出保留小數(shù)有小數(shù)輸出小數(shù),沒小數(shù)輸出整數(shù)%g前置0特別注意:中文符號和英文符號要對應一致,一般情況下都用英文符號(如中文逗號,和英文輸出進制轉(zhuǎn)換第14頁輸出進制轉(zhuǎn)換前置0輸出保留小數(shù)%g特別注意:中文符號和英文符號要對應一致,一般情況下都用英文符號(如中文逗號,和英文intNNint要第14頁不要硬記,直接輸出來看輸出結(jié)果97特別注意:如果遇到需要ASCII碼的題目的時候記住char字符和int值是可以相互轉(zhuǎn)化的。很多時候使用C++的輸入輸出寫起來更簡單,在應對一些輸入輸出量不是很大的題目的時候,比如求兩個數(shù)的和:1.#include<iostream>//輸入輸出函數(shù)的頭文件2.6.cout<<a+b;//輸出兩個數(shù)之和可以發(fā)現(xiàn),C++的輸入輸出敲起來更快,這是我們會使用它來進行混合編程的原因之一。另外,C++的string類對于字符串操作很方便,但是輸入輸出只能用cin、cout。特別注意:大家一定平時練習的時候不要排斥混合編程,即C與C++語法混用,然后用C++提時間去解決更多的題目。友情提示:當輸入或輸出格式有特殊要求的時候,cin和cout不方便解決,那么我們還是使用scanf和printf來解決問題。要注意的是printf盡量不要和cout同時使用,會發(fā)生一些不可控的意外。第15頁不要硬記,直接輸出來看輸出結(jié)果97特別注意:如果遇到需要ASCII碼的題目的時候記住char字符和int值是可以相互轉(zhuǎn)化的。很多時候使用C++的輸入輸出寫起來更簡單,在應對一些輸入輸出量不是很大的題目的時候,比如求兩個數(shù)的和:1.#include<iostream>//輸入輸出函數(shù)的頭文件2.6.cout<<a+b;//輸出兩個數(shù)之和可以發(fā)現(xiàn),C++的輸入輸出敲起來更快,這是我們會使用它來進行混合編程的原因之一。另外,C++的string類對于字符串操作很方便,但是輸入輸出只能用cin、cout。特別注意:大家一定平時練習的時候不要排斥混合編程,即C與C++語法混用,然后用C++提時間去解決更多的題目。友情提示:當輸入或輸出格式有特殊要求的時候,cin和cout不方便解決,那么我們還是使用scanf和printf來解決問題。要注意的是printf盡量不要和cout同時使用,會發(fā)生一些不可控的意外。第15頁不過要看考試的評測機支不支持,絕大部分都是支持的。當然,我們還可以留一手,準備一個不過要看考試的評測機支不支持,絕大部分都是支持的。當然,我們還可以留一手,準備一個完整的頭文件,在考試開始前敲上去就行。特別注意:頭文件可以多,但是不能少,但是有一些頭文件是不允許的,大部分OJ為了系統(tǒng)安全性考慮限制了一些特殊的API,導致一些頭文件不能使用,比如windows.h。當然不同的OJ的安全策略也不盡相同,一般不涉及到系統(tǒng)函數(shù)的頭文件一般都是可以使用的。13.15.第16頁這里推薦一個萬能頭文件給大家這里推薦一個萬能頭文件給大家不過要看考試的評測機支不支持,絕大部分都是支持的。當然,我們還可以留一手,準備一個完整的頭文件,在考試開始前敲上去就行。13.15.特別注意:頭文件可以多,但是不能少,但是有一些頭文件是不允許的,大部分OJ為了系統(tǒng)安全性考慮限制了一些特殊的API,導致一些頭文件不能使用,比如windows.h。當然不同的OJ的安全策略也不盡相同,一般不涉及到系統(tǒng)函數(shù)的頭文件一般都是可以使用的。第16頁83221832211455輸入N(N<=100)個數(shù),每個數(shù)的范圍>0并且<=100,請將每個不同的數(shù)從小到大輸出并且輸出它對應的個數(shù)。3.iii15.return0;數(shù)組除了可以存儲數(shù)據(jù)以外,還可以用來進行標記。代碼如下第17頁樣例輸入樣例輸出樣例輸出22314152數(shù)組除了可以存儲數(shù)據(jù)以外,還可以用來進行標記。例題:輸入輸入N(N<=100)個數(shù),每個數(shù)的范圍>0并且<=100,請將每個不同的數(shù)從小到大輸出并且輸出它對應的個數(shù)。樣例輸入8832211455樣例輸樣例輸出22314152代碼如下3.iii15.return0;第17頁初始的時候每個值的個數(shù)都是0。例如我們存儲地圖的時候#####@####3.forinti=1;i<=4;i++){8./*不要用下面這種輸入方式,否則會出問題,因為回車也算一個char字符j11.}12.*/forintiii++){17.}假設一個地圖是這樣的,我們要用二維字符數(shù)組來存儲,我們可以像下面這樣做。第18頁數(shù)組的使用不一定從0開始,可以從任意下標開始,只要我們使用的時候?qū)暇托?。初始的時候每個值的個數(shù)都是0。數(shù)組的使用不一定從0開始,可以從任意下標開始,只要我們使用的時候?qū)暇托小@缥覀兇鎯Φ貓D的時候#####@####假設一個地圖是這樣的,我們要用二維字符數(shù)組來存儲,我們可以像下面這樣做。3.forinti=1;i<=4;i++){8./*不要用下面這種輸入方式,否則會出問題,因為回車也算一個char字符j11.}12.*/forintiii++){17.}第18頁第19頁輸入N(第19頁輸入N(N<=100)個數(shù),每個數(shù)的范圍>0并且<=100,請將每個不同的數(shù)輸出并且輸出它對應的個數(shù)。要求按值出現(xiàn)的次數(shù)從小到大排序,如果多個值有相同的個數(shù),只用輸出值最大樣例輸出3.ii17.return0;我們將上面那題改進一下代碼如下樣例輸入8322114554152我們將上面那題改進一下例題:輸入N輸入N(N<=100)個數(shù),每個數(shù)的范圍>0并且<=100,請將每個不同的數(shù)輸出并且輸出它對應的個數(shù)。要求按值出現(xiàn)的次數(shù)從小到大排序,如果多個值有相同的個數(shù),只用輸出值最大8832211455樣例輸出44152代碼如下3.ii17.return0;第19頁特殊技巧:如果發(fā)現(xiàn)自己設計的算法不能在題目要求的時限內(nèi)解決問題,不要著急,可以先把這道特殊技巧:如果發(fā)現(xiàn)自己設計的算法不能在題目要求的時限內(nèi)解決問題,不要著急,可以先把這道題留一下,繼續(xù)做其他題,然后看一下排行榜,有多少人過了這道題,如果過的人多,那么說明這道題可能數(shù)據(jù)比較水,直接暴力做,不要怕復雜度的問題,因為出題人可能偷懶或者失誤了導致數(shù)據(jù)很水??佳袡C試的題目數(shù)據(jù)大部分情況都比較水,所以不要被復雜度嚇唬住了,后面的章節(jié)會教大家面對不會更好的算法那來解決題目的時候,如何用優(yōu)雅的技巧水過第20頁O(N)NlogNO(N^2logN)O(2^N)例如:我們寫一個冒泡排序,它是兩個for循環(huán),時間復雜度是O(N^2),那么在1S內(nèi)我們最多可以對多少個數(shù)進行冒泡排序呢,N在1000-3000之間。一般情況下我們可以默認評測機一秒內(nèi)可以運行1e7條語句,當然這只是一個大概的估計,實際上每個服務器的性能不同,這個值都不同,但是一般都相差不大,差一個常數(shù)是正常的。因此,我們可以這樣做一個對應,下面是時限1S的情況N最大在500W左右N最大在20W左右N最大在2000左右N最大700在左右N最大在200左右N最大在50左右N最大在24左右N最大在10左右如果是2S、3S對應的乘以2和3就可以。在做題之前,我們要先判斷這道題是否可做,對于簡單的模擬題,大家肯定都知道,我能寫出來就是可做,寫不出來就是不可做。但是對于循環(huán)嵌套和算法題,我們就需要去判斷思考自己設計的算法是否可以通過這道題。不懂復雜度計算的同學去看一下數(shù)據(jù)結(jié)構課程的第一章,很簡單的。在做題之前,我們要先判斷這道題是否可做,對于簡單的模擬題,大家肯定都知道,我能寫出來就是可做,寫不出來就是不可做。但是對于循環(huán)嵌套和算法題,我們就需要去判斷思考自己設計的算法是否可以通過這道題。不懂復雜度計算的同學去看一下數(shù)據(jù)結(jié)構課程的第一章,很簡單的。例如:我們寫一個冒泡排序,它是兩個for循環(huán),時間復雜度是O(N^2),那么在1S內(nèi)我們最多可以對多少個數(shù)進行冒泡排序呢,N在1000-3000之間。一般情況下我們可以默認評測機一秒內(nèi)可以運行1e7條語句,當然這只是一個大概的估計,實際上每個服務器的性能不同,這個值都不同,但是一般都相差不大,差一個常數(shù)是正常的。因此,我們可以這樣做一個對應,下面是時限1S的情況N最大在500WN最大在500W左右N最大在20W左右N最大在2000左右N最大700在左右N最大在200左右N最大在50左右N最大在24左右N最大在10左右O(NlogN)O(N^2)O(N^2logN)O(N^3)O(N^4)O(2^N)如果是2S、3S對應的乘以2和3就可以。特殊技巧:如果發(fā)現(xiàn)自己設計的算法不能在題目要求的時限內(nèi)解決問題,不要著急,可以先把這道題留一下,繼續(xù)做其他題,然后看一下排行榜,有多少人過了這道題,如果過的人多,那么說明這道題可能數(shù)據(jù)比較水,直接暴力做,不要怕復雜度的問題,因為出題人可能偷懶或者失誤了導致數(shù)據(jù)很水??佳袡C試的題目數(shù)據(jù)大部分情況都比較水,所以不要被復雜度嚇唬住了,后面的章節(jié)會教大家面對不會更好的算法那來解決題目的時候,如何用優(yōu)雅的技巧水過第20頁舉個簡單的例子舉個簡單的例子題目要求你對10W個數(shù)進行排序假設你只會冒泡排序,但是冒泡排序很明顯復雜度太高了,但是有可能出題人偷懶,他構造的測試數(shù)據(jù)最多只有100個,根本沒有10W個,那么你就可以用冒泡排序通過這道題。但是這種情況比較少見,一般至少都會有一組極限數(shù)據(jù),所以可以先把這道題放著去做其他題,然后再看看其他人能不能通過,如果很多人都過了,那么你就可以暴力試一下。特別注意:空間復雜度一般不會限制,如果遇到了再想辦法優(yōu)化空間。第21頁舉個簡單的例子題目要求你對10W個數(shù)進行排序假設你只會冒泡排序,但是冒泡排序很明顯復雜度太高了,但是有可能出題人偷懶,他構造的測試數(shù)據(jù)最多只有100個,根本沒有10W個,那么你就可以用冒泡排序通過這道題。但是這種情況比較少見,一般至少都會有一組極限數(shù)據(jù),所以可以先把這道題放著去做其他題,然后再看看其他人能不能通過,如果很多人都過了,那么你就可以暴力試一下。特別注意:空間復雜度一般不會限制,如果遇到了再想辦法優(yōu)化空間。第21頁函數(shù)upper_bound()lower_bound()和upper_bound()都是利用二分查找的方法在一個排好序的數(shù)組中進行查找。3.sort(a,a+n);排序sort()函數(shù):依次傳入三個參數(shù),要排序區(qū)間的起點,要排序區(qū)間的終點+1,比較函數(shù)。比較函數(shù)可以不填,則默認為從小到大排序。C++的算法頭文件里有很多很實用的函數(shù),我們可以直接拿來用。#include<algorithm>第22頁C++的算法頭文件里有很多很實用的函數(shù),我們可以直接拿來用。#include<algorithm>排序sort()函數(shù):依次傳入三個參數(shù),要排序區(qū)間的起點,要排序區(qū)間的終點+1,比較函數(shù)。比較函數(shù)可以不填,則默認為從小到大排序。3.sort(a,a+n);函數(shù)upper_bound()lower_bound()和upper_bound()都是利用二分查找的方法在一個排好序的數(shù)組中進行查找。第22頁在從小到大的排序數(shù)組中,在從小到大的排序數(shù)組中,得到找到數(shù)字在數(shù)組中的下標。的數(shù)字,找到返回該數(shù)字的地址,不存在則返回end。通過返回的地址減去起始地址begin,得到找到數(shù)字在數(shù)組中的下標。在從大到小的排序數(shù)組中,重載lower_bound()和upper_bound()找第一個小于或等于num的數(shù)字,找到返回該數(shù)字的地址,不存在則返回end。通過返回的地址減去起始地址begin,得到找到數(shù)字在數(shù)組中的下標。d找第一個小于num的數(shù)字,找到返回該數(shù)字的地址,不存在則返回end。通過返回的地址減去起始地址begin,得到找到數(shù)字在數(shù)組中的下標。3.9.sort(num,num+6);//按從小到大排序intpos1=lower_bound(num,num+6,7)-num;11.//返回數(shù)組中第一個大于或等于被查數(shù)的值12.intpos2=upper_bound(num,num+6,7)-num;13.//返回數(shù)組中第一個大于被查數(shù)的值16.sort(num,num+6,cmp);//按從大到小排序第23頁在從小到大的排序數(shù)組中,得到找到數(shù)字在數(shù)組中的下標。的數(shù)字,找到返回該數(shù)字的地址,不存在則返回end。通過返回的地址減去起始地址begin,得到找到數(shù)字在數(shù)組中的下標。在從大到小的排序數(shù)組中,重載lower_bound()和upper_bound()找第一個小于或等于num的數(shù)字,找到返回該數(shù)字的地址,不存在則返回end。通過返回的地址減去起始地址begin,得到找到數(shù)字在數(shù)組中的下標。d找第一個小于num的數(shù)字,找到返回該數(shù)字的地址,不存在則返回end。通過返回的地址減去起始地址begin,得到找到數(shù)字在數(shù)組中的下標。3.9.sort(num,num+6);//按從小到大排序intpos1=lower_bound(num,num+6,7)-num;11.//返回數(shù)組中第一個大于或等于被查數(shù)的值12.intpos2=upper_bound(num,num+6,7)-num;13.//返回數(shù)組中第一個大于被查數(shù)的值16.sort(num,num+6,cmp);//按從大到小排序第23頁2.23.//返回數(shù)組中第一個小于或等于被查數(shù)的值//返回數(shù)組中第一個小于被查數(shù)的值cout<<pos4<<""<<num[pos4]<<endl;return0;通過priority_queue<int>q來定義一個儲存整數(shù)的空的priority_queue。當然priority_queue可以存任何類型的數(shù)據(jù),比如priority_queue<string>q等等。ycoutqtopendl//隊首元素13.return0;C++的STL(標準模板庫)是一個非常重要的東西,可以極大的幫助你更快速的解決題目。第24頁vectorvectorstringv等等。boundnumnumgreaterintnum//返回數(shù)組中第一個小于被查數(shù)的值cout<<pos4<<""<<num[pos4]<<endl;return0;通過priority_queue<int>q來定義一個儲存整數(shù)的空的priority_queue。當然priority_queue可以存任何類型的數(shù)據(jù),比如priority_queue<string>q等等。ycoutqtopendl//隊首元素13.return0;C++的STL(標準模板庫)是一個非常重要的東西,可以極大的幫助你更快速的解決題目。vectorvectorstringv等等。第24頁queuequeue10.cout<<q.front()<<endl;//取出隊首元素13.return0;第25頁ueuestringqiiiector}otr12.cout<<endl;13.return0;iiiector}otr12.cout<<endl;13.return0;queueueuestringq10.cout<<q.front()<<endl;//取出隊首元素13.return0;第25頁cout<S.top()<<endl;//輸出棧頂元素13.return0;stack通過stack<int>S來定義一個全局棧來儲存整數(shù)的空的stack。當然stack可以存任何類型的數(shù)據(jù),比如stack<string>S等等。第26頁mappmap何類型的數(shù)據(jù),比如map<int,int>m等等。stack通過stack<int>S來定義一個全局棧來儲存整數(shù)的空的stack。當然stack可以存任何類型的數(shù)據(jù),比如stack<string>S等等。cout<S.top()<<endl;//輸出棧頂元素13.return0;mapmap何類型的數(shù)據(jù),比如map<int,int>m等等。第26頁6.17.18.//使用迭代器遍歷map的key和value}return0;set據(jù),比如set<int>s等等。10.//使用迭代器遍歷集合元素12.cout<<*it<<"";14.cout<<endl;n18.cout<<"Chinaincountry."<<endl;21.return0;第27頁//使用迭代器遍歷map的key}return0;set據(jù),比如set<int>s等等。10.//使用迭代器遍歷集合元素12.cout<<*it<<"";14.cout<<endl;n18.cout<<"Chinaincountry."<<endl;21.return0;第27頁輸入兩個數(shù),輸出兩個數(shù)的和,要求多組輸入。37輸入兩個數(shù),輸出兩個數(shù)的和,要求多組輸入。373樣例輸入特別注意:不能使用while(1)這樣死循環(huán),!=EOF的意思一直讀取到文件末尾(Endoffile)另外,多組輸入一定要注意初始化問題,數(shù)組和變量的初始化要放在while循環(huán)內(nèi),否則上一次的運算的結(jié)果會影響當前的結(jié)果。C對有的題目來說,可能需要多組輸入。多組輸入是什么意思呢?一般的題目我們輸入一組數(shù)據(jù),然后直接輸出程序就結(jié)束了,但是多組輸入的話要求我們可以循環(huán)輸入輸出結(jié)果。例題:樣例輸出循環(huán)讀入代碼如下3.}9.return0;第28頁對有的題目來說,可能需要多組輸入。多組輸入是什么意思呢?一般的題目我們輸入一組數(shù)據(jù),然后直接輸出程序就結(jié)束了,但是多組輸入的話要求我們可以循環(huán)輸入輸出結(jié)果。例題:輸輸入兩個數(shù),輸出兩個數(shù)的和,要求多組輸入。樣例輸入37樣例輸出33C循環(huán)讀入代碼如下C3.}9.return0;特別注意:不能使用while(1)這樣死循環(huán),!=EOF的意思一直讀取到文件末尾(Endoffile)另外,多組輸入一定要注意初始化問題,數(shù)組和變量的初始化要放在while循環(huán)內(nèi),否則上一次的運算的結(jié)果會影響當前的結(jié)果。第28頁Python循環(huán)讀入代碼如下Python循環(huán)讀入代碼如下try:3.7.cout<<a+b<<endl;}9.return0;C++循環(huán)讀入代碼如下Java循環(huán)讀入代碼如下c=a+bexcept:#讀到文件末尾拋出異常結(jié)束循環(huán)break第29頁C++循環(huán)讀入代碼如下3.7.cout<<a+b<<endl;}9.return0;Java循環(huán)讀入代碼如下Python循環(huán)讀入代碼如下try:2.c=a+bexcept:#讀到文件末尾拋出異常結(jié)束循環(huán)break.第29頁學會這一章,在機試難度較低的學?;旧峡梢阅玫?0-80分左右的成績,在機試難度中等的學校,也可拿到40-60分左右的成績,在機試難度高的學校亦可將簽到題做出來,拿到20-40分的成績。所以,認真看完這一章的內(nèi)容對你的幫助會很大,加油,fighting!第30頁學會這一章,在機試難度較低的學?;旧峡梢阅玫?0-80分左右的成績,在機試難度中等的學校,也可拿到40-60分左右的成績,在機試難度高的學校亦可將簽到題做出來,拿到20-40分的成績。所以,認真看完這一章的內(nèi)容對你的幫助會很大,加油,fighting!第30頁促銷計算促銷計算DreamJudge10912.1簡單模擬在考研機試中,有一類很常見的題型叫做簡單模擬。顧名思義,就是不需要去考慮什么算法,直接按照題目的意思進行模擬計算就行。輸入樣例#:解題分析:根據(jù)題目的意思,我們知道就是按照題意去進行打折優(yōu)惠的計算,只需要判斷輸入的數(shù)值在哪個區(qū)間該用什么優(yōu)惠去計算就好了。3.某百貨公司為了促銷,采用購物打折的優(yōu)惠方法,每位顧客一次購物:在1000元以上者,按,購物款數(shù),計算并輸出優(yōu)惠價。輸出樣例#:第31頁2.1簡單模擬在考研機試中,有一類很常見的題型叫做簡單模擬。顧名思義,就是不需要去考慮什么算法,直接按照題目的意思進行模擬計算就行。促促銷計算某百貨公司為了促銷,采用購物打折的優(yōu)惠方法,每位顧客一次購物:在1000元以上者,按序,購物款數(shù),計算并輸出優(yōu)惠價。輸入樣例#:輸出樣例#:DreamJudgeDreamJudge1091解題分析:根據(jù)題目的意思,我們知道就是按照題意去進行打折優(yōu)惠的計算,只需要判斷輸入的數(shù)值在哪個區(qū)間該用什么優(yōu)惠去計算就好了。3.第31頁nDreamJudge1043計算SnDreamJudge1040利潤提成DreamJudge1722身份證校驗.2.13.//使用%g可以自動去掉小數(shù)點后多余的0如果是整數(shù)則顯示整數(shù)return0;第32頁練習題目簡單模擬這類題目在考試中很常見,屬于送分簽到的題目。所有的考生,注意了,這類題必須會做。對于簡單模擬這一類的題目,怎么去練習提高呢?很簡單,在DreamJudge上多做題就行了。那么要達到什么樣的標準呢?如果你想拿高分甚至滿分,平時訓練的時候,這類題盡量要在8分鐘內(nèi)解決。如果你只是想拿個還不錯的成績,這類題AC的時間盡量不要超過15分鐘,一定要記住,最壞情況不能超過20分鐘,如果超過了,說明你平時做的題還是太少了。在考試的過程中,大多數(shù)考生都會緊張,有些考生甚至會手抖,導致敲多某個字母,然后又調(diào)試半天,找半天錯,會導致比平時解決同樣難度的問題時長多一倍甚至更多,所以平時就要注意,做題千萬不能太慢了,不然沒有足夠的時間來解決其他的題目哦。.3.//使用%g可以自動去掉小數(shù)點后多余的0如果是整數(shù)則顯示整數(shù)return0;簡單模擬這類題目在考試中很常見,屬于送分簽到的題目。所有的考生,注意了,這類題必須會做。對于簡單模擬這一類的題目,怎么去練習提高呢?很簡單,在DreamJudge上多做題就行了。那么要達到什么樣的標準呢?如果你想拿高分甚至滿分,平時訓練的時候,這類題盡量要在8分鐘內(nèi)解決。如果你只是想拿個還不錯的成績,這類題AC的時間盡量不要超過15分鐘,一定要記住,最壞情況不能超過20分鐘,如果超過了,說明你平時做的題還是太少了。在考試的過程中,大多數(shù)考生都會緊張,有些考生甚至會手抖,導致敲多某個字母,然后又調(diào)試半天,找半天錯,會導致比平時解決同樣難度的問題時長多一倍甚至更多,所以平時就要注意,做題千萬不能太慢了,不然沒有足夠的時間來解決其他的題目哦。練習題目nDreamJudge1043計算SnDreamJudge1040利潤提成DreamJudge1722身份證校驗第32頁總的來說,跟進制相關的題目可以分為以下幾種題型1、總的來說,跟進制相關的題目可以分為以下幾種題型1、反序數(shù):輸入一個整數(shù)如123,將其轉(zhuǎn)換為反序之后的整數(shù)3212、10進制轉(zhuǎn)2進制:將一個10進制整數(shù)轉(zhuǎn)化為一個2進制的整數(shù)3、10進制轉(zhuǎn)16進制:將一個10進制整數(shù)轉(zhuǎn)化為一個16進制的整數(shù)換為A4、10進制轉(zhuǎn)x進制:將一個10進制整數(shù)轉(zhuǎn)化為一個x進制的整數(shù)解析:這是前面兩個的一種通解,如果會前面兩種那么這個自然也觸類旁通。5、x進制轉(zhuǎn)10進制:將一個x進制整數(shù)轉(zhuǎn)化為一個10進制的整數(shù)解析:這是上一種情況的反例,看代碼之后相信也能容易理解。6、x進制轉(zhuǎn)y進制:將一個x進制整數(shù)轉(zhuǎn)化為一個y進制的整數(shù)例如:有一串字符串31.25將其轉(zhuǎn)換為一個浮點數(shù),可以先轉(zhuǎn)整數(shù)部分,再轉(zhuǎn)小數(shù)部分,最后相加即可。一個字符串。9、字符串轉(zhuǎn)整型和整形轉(zhuǎn)字符串解析:直接用atoi函數(shù)和itoa函數(shù)即可。2.2進制轉(zhuǎn)換類問題進制轉(zhuǎn)換類的題目在絕大多數(shù)學校都是必考題目之一,這類題目的既基礎又靈活,能看出學生的編程功底,所以這類題目一定要掌握。第33頁2.2進制轉(zhuǎn)換類問題進制轉(zhuǎn)換類的題目在絕大多數(shù)學校都是必考題目之一,這類題目的既基礎又靈活,能看出學生的編程功底,所以這類題目一定要掌握??偟膩碚f,跟進制相關的題目可以分為以下幾種題型1、反序數(shù):輸入一個整數(shù)如123,將其轉(zhuǎn)換為反序之后的整數(shù)3212、10進制轉(zhuǎn)2進制:將一個10進制整數(shù)轉(zhuǎn)化為一個2進制的整數(shù)3、10進制轉(zhuǎn)16進制:將一個10進制整數(shù)轉(zhuǎn)化為一個16進制的整數(shù)換為A4、10進制轉(zhuǎn)x進制:將一個10進制整數(shù)轉(zhuǎn)化為一個x進制的整數(shù)解析:這是前面兩個的一種通解,如果會前面兩種那么這個自然也觸類旁通。5、x進制轉(zhuǎn)10進制:將一個x進制整數(shù)轉(zhuǎn)化為一個10進制的整數(shù)解析:這是上一種情況的反例,看代碼之后相信也能容易理解。6、x進制轉(zhuǎn)y進制:將一個x進制整數(shù)轉(zhuǎn)化為一個y進制的整數(shù)例如:有一串字符串31.25將其轉(zhuǎn)換為一個浮點數(shù),可以先轉(zhuǎn)整數(shù)部分,再轉(zhuǎn)小數(shù)部分,最后相加即可。一個字符串。9、字符串轉(zhuǎn)整型和整形轉(zhuǎn)字符串解析:直接用atoi函數(shù)和itoa函數(shù)即可。第33頁2.6.//輸入10進制n和要轉(zhuǎn)換的進制xnt9.while(n>0){//將n逐位分解10.intw=(n%x);12.n/=x;14.//反序輸出15.for(inti=cnt-1;i>=0;i--){19.return0;2.6.intans=0;//將反序之后的答案存在這里7.while(n>0){//將n逐位分解8.ans*=10;9.ans+=(n%10);10.n/=10;13.return0;反序數(shù)代碼10進制轉(zhuǎn)x進制代碼(x小于10的情況)第34頁反序數(shù)代碼2.6.intans=0;//將反序之后的答案存在這里7.while(n>0){//將n逐位分解8.ans*=10;9.ans+=(n%10);10.n/=10;13.return0;10進制轉(zhuǎn)x進制代碼(x小于10的情況)2.6.//輸入10進制n和要轉(zhuǎn)換的進制xnt9.while(n>0){//將n逐位分解10.intw=(n%x);12.n/=x;14.//反序輸出15.for(inti=cnt-1;i>=0;i--){19.return0;第34頁10進制轉(zhuǎn)10進制轉(zhuǎn)x進制代碼(通用版)3.6.//輸入二進制字符串12.ans=ans*2;13.}15.ans=ans*2+1;第35頁2.6.//輸入10進制n和要轉(zhuǎn)換的進制xnt9.while(n>0){//將n逐位分解10.intw=(n%x);ntwa13.//如果大于10則從A字符開始14.n/=x;16.//反序輸出17.for(inti=cnt-1;i>=0;i--){21.return0;10進制轉(zhuǎn)x進制代碼(通用版)2.6.//輸入10進制n和要轉(zhuǎn)換的進制xnt9.while(n>0){//將n逐位分解10.intw=(n%x);ntw13.//如果大于10則從A字符開始14.n/=x;16.//反序輸出17.for(inti=cnt-1;i>=0;i--){21.return0;3.6.//輸入二進制字符串12.ans=ans*2;13.}15.ans=ans*2+1;第35頁8.19.}}return0;進制轉(zhuǎn)y進制(通用版)x3.7.//輸入X進制字符串和代表的進制x12.ans=ans*x;17.return0;x進制轉(zhuǎn)10進制(通用版)3.7.//輸入二進制字符串和代表的進制x以及要轉(zhuǎn)換的進制ynfsddsxyintans=0;第36頁}return0;x進制轉(zhuǎn)10進制(通用版)x3.7.//輸入X進制字符串和代表的進制x12.ans=ans*x;17.return0;x進制轉(zhuǎn)y進制(通用版)x3.7.//輸入二進制字符串和代表的進制x以及要轉(zhuǎn)換的進制ynfsddsxyintans=0;第36頁進制轉(zhuǎn)換將一個長度最多為30位數(shù)字的十進制非負整數(shù)轉(zhuǎn)換為二進制數(shù)輸出多組數(shù)據(jù),每行為一個長度不超過30位的十進制非負整數(shù)。進制轉(zhuǎn)換將一個長度最多為30位數(shù)字的十進制非負整數(shù)轉(zhuǎn)換為二進制數(shù)輸出多組數(shù)據(jù),每行為一個長度不超過30位的十進制非負整數(shù)。意是10進制數(shù)字的個數(shù)可能有30個,而非30bits的整數(shù))每行輸出對應的二進制數(shù)。7.28.ans=ans*x;}intcnt;intw=(ans%y);ans/=y;}for(inti=cnt-1;i>=0;i--){}return0;第37頁還有一類進制轉(zhuǎn)換的題目是大數(shù)的進制轉(zhuǎn)換,建議同學們學完第四章高精度問題,學會大數(shù)的加減乘除法再看下面這類題。輸入樣例#:01輸入樣例#:0138ans=ans*x15.intcnt;while(ans>0){intw=(ans%y);ans/=y;21.22.}for}for(inti=cnt-1;i>=0;i--){}return0;7.28.還有一類進制轉(zhuǎn)換的題目是大數(shù)的進制轉(zhuǎn)換,建議同學們學完第四章高精度問題,學會大數(shù)的加減乘除法再看下面這類題。進進制轉(zhuǎn)換將將一個長度最多為30位數(shù)字的十進制非負整數(shù)轉(zhuǎn)換為二進制數(shù)輸出多多組數(shù)據(jù),每行為一個長度不超過30位的十進制非負整數(shù)。意是10進制數(shù)字的個數(shù)可能有30個,而非30bits的整數(shù))每每行輸出對應的二進制數(shù)。輸入樣例#輸入樣例#:0138第37頁01DreamJudge1178第01DreamJudge1178第38頁題目解析:這個題和一般的10進制轉(zhuǎn)二進制的區(qū)別在于它的數(shù)是一個很大的整數(shù)。對于一個很大的數(shù)我們做法和普通的10進制轉(zhuǎn)二進制是一樣的,就是不斷的%2然后除/2,唯一區(qū)別在于要用大數(shù)進行模擬。3.4.//十進制轉(zhuǎn)二進制intnum[40];12.}numj(num[j]+c)/2;//高位除2(數(shù)的高位對應數(shù)組低位21.if(tmp%2==1){//判斷tmp是否為奇數(shù)c=10;//若tmp為奇數(shù),則該位必有余數(shù)10輸出樣例#:參考代碼輸出樣例#:001DreamJudgeDreamJudge1178題目解析:這個題和一般的10進制轉(zhuǎn)二進制的區(qū)別在于它的數(shù)是一個很大的整數(shù)。對于一個很大的數(shù)我們做法和普通的10進制轉(zhuǎn)二進制是一樣的,就是不斷的%2然后除/2,唯一區(qū)別在于要用大數(shù)進行模擬。參考代碼3.4.//十進制轉(zhuǎn)二進制intnum[40];12.}numj(num[j]+c)/2;//高位除2(數(shù)的高位對應數(shù)組低位21.if(tmp%2==1){//判斷tmp是否為奇數(shù)c=10;//若tmp為奇數(shù),則該位必有余數(shù)10第38頁3.}}}}}return0;這類題目任他千變?nèi)f化,本質(zhì)上都是不變的。就是數(shù)位的拆解與合并,拆解很明顯就是兩立于了不敗之地。題目練習DreamJudge1454題目練習DreamJudge1454反序數(shù)DreamJudge1259進制轉(zhuǎn)換2DreamJudge1176十進制和二進制DreamJudge1380二進制數(shù)DreamJudge1417八進制DreamJudge1422進制轉(zhuǎn)換3DreamJudge1097負二進制第39頁}}}}}0.}return0;32.33.這類題目任他千變?nèi)f化,本質(zhì)上都是不變的。就是數(shù)位的拆解與合并,拆解很明顯就是兩立于了不敗之地。題目練習題目練習DreamJudge1454反序數(shù)DreamJudge1259進制轉(zhuǎn)換2DreamJudge1176十進制和二進制DreamJudge1380二進制數(shù)DreamJudge1417八進制DreamJudge1422進制轉(zhuǎn)換3DreamJudge1097負二進制第39頁輸入一個整數(shù)n輸入一個整數(shù)n表示棱形的對角半長度,請你用*把這個棱形畫出來。輸入:3輸出:*********字符棱形2.3排版類問題排版類問題也是機試中經(jīng)常出現(xiàn)的題目,這類題目主要考驗考生對代碼的掌控程度。表面上看起來很簡單,但是對于大部分沒有認真研究過的同學來學,這些題可能會搞半天才能搞出總的來說,排版類的題目可以以下幾種題型為代表。1、輸出字符棱形DreamJudge1473這類題目的變形可以是輸出長方形、三角形、梯形等形狀。2、旋轉(zhuǎn)數(shù)字輸出3、矩陣順/逆指針旋轉(zhuǎn)4、矩陣翻轉(zhuǎn)這類題目的變形可以是軸對稱翻轉(zhuǎn)、中心對稱翻轉(zhuǎn)等。5、楊輝三角形6、2048問題以上,我們選擇其中輸出字符棱形和楊輝三角形進行詳細講解,其他題型我們給出解題思路以及題目編號,大家可以在本節(jié)后面的練習題目里找到并完成。如果自己無法理解并完成題目,請加入我們的機試交流群進行提問交流。第40頁2.3排版類問題排版類問題也是機試中經(jīng)常出現(xiàn)的題目,這類題目主要考驗考生對代碼的掌控程度。表面上看起來很簡單,但是對于大部分沒有認真研究過的同學來學,這些題可能會搞半天才能搞出總的來說,排版類的題目可以以下幾種題型為代表。1、輸出字符棱形DreamJudge1473這類題目的變形可以是輸出長方形、三角形、梯形等形狀。2、旋轉(zhuǎn)數(shù)字輸出3、矩陣順/逆指針旋轉(zhuǎn)4、矩陣翻轉(zhuǎn)這類題目的變形可以是軸對稱翻轉(zhuǎn)、中心對稱翻轉(zhuǎn)等。5、楊輝三角形6、2048問題以上,我們選擇其中輸出字符棱形和楊輝三角形進行詳細講解,其他題型我們給出解題思路以及題目編號,大家可以在本節(jié)后面的練習題目里找到并完成。如果自己無法理解并完成題目,請加入我們的機試交流群進行提問交流。字字符棱形題目描述:輸入一個輸入一個整數(shù)n表示棱形的對角半長度,請你用*把這個棱形畫出來。輸入:3輸出:*********第40頁1*DreamJudge1473解題分析:對于這類題目,我們可以將它進行分解。從中間切開,上面一個三角形,下面一個1*DreamJudge1473解題分析:對于這類題目,我們可以將它進行分解。從中間切開,上面一個三角形,下面一個2.6.//上三角forinti;i<=n;i++){8.for(intj=1;j<=n-i;j++){10.}11.for(intj=n-i+1;j<n+i;j++){13.}16.//下三角下三角只需要將上三角反過來輸出就行18.for(intj=1;j<=n-i;j++){20.}21.for(intj=n-i+1;j<n+i;j++){23.}第41頁輸入樣例#:輸出樣例#:***************輸入樣例#:11輸出樣例#:**DreamJudgeDreamJudge1473解題分析:對于這類題目,我們可以將它進行分解。從中間切開,上面一個三角形,下面一個2.6.//上三角forinti;i<=n;i++){8.for(intj=1;j<=n-i;j++){10.}11.for(intj=n-i+1;j<n+i;j++){13.}16.//下三角下三角只需要將上三角反過來輸出就行18.for(intj=1;j<=n-i;j++){20.}21.for(intj=n-i+1;j<n+i;j++){23.}第41頁輸入你想輸出楊輝三角形的行數(shù)n(n<=20);當輸入0輸入你想輸出楊輝三角形的行數(shù)n(n<=20);當輸入0時程序結(jié)束.1111211331146415對于每一個輸入的數(shù),輸出其要求的三角形.每兩個輸出數(shù)中間有一個空格.每輸完一個三角形換行.輸入樣例#:}return0;24.25.26.提到楊輝三角形.大家應該都很熟悉.這是我國宋朝數(shù)學家楊輝在公元1261年著書《詳解九章算法》提出的。111121133114641151010511615201561我們不難其規(guī)律:S1:這些數(shù)排列的形狀像等腰三角形,兩腰上的數(shù)都是1S2:從右往左斜著看,第一列是1,1,1,1,1,1,1;第二列是,1,2,3,4,5,6;第三列是1,3,6,10,15;列是1,1,1,1,1,1,1;第二列是1,2,3,4,5,6……和前面的看法一樣。我發(fā)現(xiàn)這個數(shù)列是左右對稱的。S3:上面兩個數(shù)之和就是下面的一行的數(shù)。S4:這行數(shù)是第幾行,就是輸出樣例#:第42頁楊輝三角形}return0;楊楊輝三角形提到楊輝三角形.大家應該都很熟悉.這是我國宋朝數(shù)學家楊輝在公元1261年著書《詳解九章算法》提出的。111121133114641151010511615201561我們不難其規(guī)律:S1:這些數(shù)排列的形狀像等腰三角形,兩腰上的數(shù)都是1S2:從右往左斜著看,第一列是1,1,1,1,1,1,1;第二列是,1,2,3,4,5,6;第三列是1,3,6,10,15;列是1,1,1,1,1,1,1;第二列是1,2,3,4,5,6……和前面的看法一樣。我發(fā)現(xiàn)這個數(shù)列是左右對稱的。S3:上面兩個數(shù)之和就是下面的一行的數(shù)。S4:這行數(shù)是第幾行,就是輸輸入你想輸出楊輝三角形的行數(shù)n(n<=20);當輸入0時程序結(jié)束.對于每一個輸入的數(shù),對于每一個輸入的數(shù),輸出其要求的三角形.每兩個輸出數(shù)中間有一個空格.每輸完一個三角形換行.輸入樣例#:55輸出樣例#:1111121133114641第42頁第第43頁解題分析:這是一道特別經(jīng)典的題目,我們只需要按照題意用二維數(shù)組去計算即可。對于任意6.if(n==0)break;i12.}18.}題型總結(jié):這類題目盡量在平時練習,解法主要就是把一個大問題進行分解,一部分一部分的實現(xiàn)。在考試的時候遇到,千萬不要急,將問題進行分解,找到其中的規(guī)律,然后再寫出來。當然,如果平時就有練習,那就不用擔心了。DreamJudge1062DreamJudge1062DreamJudgeDreamJudge1062解題分析:這是一道特別經(jīng)典的題目,我們只需要按照題意用二維數(shù)組去計算即可。對于任意6.if(n==0)break;i12.}18.}題型總結(jié):這類題目盡量在平時練習,解法主要就是把一個大問題進行分解,一部分一部分的實現(xiàn)。在考試的時候遇到,千萬不要急,將問題進行分解,找到其中的規(guī)律,然后再寫出來。當然,如果平時就有練習,那就不用擔心了。第43頁第第44頁練習題目練習題目DreamJudge1392楊輝三角形-西北工業(yè)大學DreamJudge1377旋轉(zhuǎn)矩-北航DreamJudge1216旋轉(zhuǎn)方陣DreamJudge1221旋轉(zhuǎn)矩陣DreamJudge14722048游戲練練習題目DreamJudge1392楊輝三角形-西北工業(yè)大學DreamJudge1377旋轉(zhuǎn)矩-北航DreamJudge1216旋轉(zhuǎn)方陣DreamJudge1221旋轉(zhuǎn)矩陣DreamJudge14722048游戲第44頁輸出一個整數(shù).既輸入的日期是本月的第幾天。輸輸入三個整數(shù)(并且三個整數(shù)是合理的,既比如當輸入月份的時候應該在1輸出一個整數(shù).既輸入的日期是本月的第幾天。輸輸入三個整數(shù)(并且三個整數(shù)是合理的,既比如當輸入月份的時候應該在1至12之間,不應該超過這個范圍)否則輸出Inputerror!定義一個結(jié)構體變量(包括年、月、日),編程序,要求輸入年月日,計算并輸出該日在本年第幾天。輸入樣例#:1.intyear,month,day;2.scanf("%d-%d-%d",&year,&month,&day);3.scanf("%d/%d/%d",&year,&month,&day);第45頁1、判斷某年是否為閏年2、某年某月某日是星期幾變形問法:某日期到某日期之間有多少天3、某天之后x天是幾月幾日x分鐘是幾點幾分變形問法:某點到某點之間有多少分或多少秒注意輸入時候一般用scanf解析輸入值日期類的題目也是??嫉念}目,這類題目一般都為以下幾種考法。2.4日期類問題2.4日期類問題日期類的題目也是??嫉念}目,這類題目一般都為以下幾種考法。1、判斷某年是否為閏年2、某年某月某日是星期幾變形問法:某日期到某日期之間有多少天3、某天之后x天是幾月幾日變形問法:某日期到某日期之間有多少天3、某天之后x天是幾月幾日變形問法:某點到某點之間有多少分或多少秒注意輸入時候一般用scanf解析輸入值1.intyear,month,day;2.scanf("%d-%d-%d",&year,&month,&day);3.scanf("%d/%d/%d",&year,&month,&day);定義一個結(jié)定義一個結(jié)構體變量(包括年、月、日),編程序,要求輸入年月日,計算并輸出該日在本年第幾天。輸輸輸入三個整數(shù)(并且三個整數(shù)是合理的,既比如當輸入月份的時候應該在1至12之間,不應該超過這個范圍)否則輸出Inputerror!輸出一個整數(shù).輸出一個整數(shù).既輸入的日期是本月的第幾天。輸入樣例#:第45頁DreamJudge1051DreamJudge10512.4.intyear,month,day;whilescanfdddpyearpmonthpdayEOF{9.//判斷是否閏年12.}15.//判斷月份輸入是否合法16.if(p.month<1||p.month>12)flag=1;17.//判斷天的輸入是否合法lag22.}輸出樣例#:是閏年則多一天,最后我們還要判斷輸入的日期是否存在,如果不存在則輸出Inputerror!解題分析:這個題目的考點在于兩個地方,一個是每個月的天數(shù)都不一樣,另一個是2月如果第46頁1985119851202006312198519851202006312輸出樣例#:DreamJudgeDreamJudge1051解題分析:這個題目的考點在于兩個地方,一個是每個月的天數(shù)都不一樣,另一個是2月如果是閏年則多一天,最后我們還要判斷輸入的日期是否存在,如果不存在則輸出Inputerror!2.4.intyear,month,day;whilescanfdddpyearpmonthpdayEOF{9.//判斷是否閏年12.}15.//判斷月份輸入是否合法16.if(p.month<1||p.month>12)flag=1;17.//判斷天的輸入是否合法lag22.}第46頁}}return0;9.日期類的題目就是要特別注意閏年的判斷,這些題目一般都是考察代碼細節(jié)的把握,時間類的第47頁特別注意:一天之內(nèi)時針和分針會重合22次,而不是24次。練習題目DreamJudge練習題目DreamJudge1011日期DreamJudge1290日期差值DreamJudge1410打印日期DreamJudge1437日期類DreamJudge1446日期累加DreamJudge1053偷菜時間表}}return0;日期類的題目就是要特別注意閏年的判斷,這些題目一般都是考察代碼細節(jié)的把握,時間類的特別注意:一天之內(nèi)時針和分針會重合22次,而不是24次。練練習題目DreamJudge1011日期DreamJudge1290日期差值DreamJudge1410打印日期DreamJudge1437日期類DreamJudge1446日期累加DreamJudge1053偷菜時間表第47頁加密算法編寫加密程序,加密規(guī)則為:將所有字母轉(zhuǎn)化為該字母后的第三個字母,即A->D、B->E、C-加密算法編寫加密程序,加密規(guī)則為:將所有字母轉(zhuǎn)化為該字母后的第三個字母,即A->D、B->E、C-C后的結(jié)果。例如:輸入"Ilove007",輸出"Loryh007"輸入一行字符串,長度小于100。輸出加密之后的結(jié)果。Loryh007Ilove0072.5字符串類問題字符串類的問題也是各個院校必考的題型之一,基本上有以下這些考點:1、統(tǒng)計字符個數(shù)2、單詞首字母大寫3、統(tǒng)計子串出現(xiàn)次數(shù)解析:考察大家基礎的字符串遍歷能力。4、文本加密/解密解析:通過循環(huán)往后移動x位或直接給一個映射表是比較常見的考法。5、文本中的單詞反序解析:靈活使用string可以秒殺這類題目,當然也可以用字符串一步步解析。6、刪除字符串(大小寫模糊)解析:如果大小寫不模糊,那么就是直接找到之后刪除。大小寫模糊的話,只是多一個判斷。輸入樣例#:輸出樣例#:第48頁2.5字符串類問題字符串類的問題也是各個院校必考的題型之一,基本上有以下這些考點:1、統(tǒng)計字符個數(shù)2、單詞首字母大寫3、統(tǒng)計子串出現(xiàn)次數(shù)解析:考察大家基礎的字符串遍歷能力。4、文本加密/解密解析:通過循環(huán)往后移動x位或直接給一個映射表是比較常見的考法。5、文本中的單詞反序解析:靈活使用string可以秒殺這類題目,當然也可以用字符串一步步解析。6、刪除字符串(大小寫模糊)解析:如果大小寫不模糊,那么就是直接找到之后刪除。大小寫模糊的話,只是多一個判斷。加密算法加密算法編編寫加密程序,加密規(guī)則為:將所有字母轉(zhuǎn)化為該字母后的第三個字母,即A->D、B->E、C-C后的結(jié)果。例如:輸入"Ilove007",輸出"Loryh007"輸輸入一行字符串,長度小于100。輸出加密之后的結(jié)果。輸出加密之后的結(jié)果。輸入樣例#:IIlove007輸出樣例#:LLoryh007第48頁DreamJudge1012字符移動DreamJudge1012字符移動DreamJudge1292字母統(tǒng)計DreamJudge1240首字母大寫DreamJudge1394統(tǒng)計單詞DreamJudge1027刪除字符串2練習題目3.12.}16.}19.}}第49頁題目解析:這是一道很常見的加解密考法,往后移動3位是這道題的核心,我們只需要按照題意將大寫字母、小寫字母、和其他分開進行處理就可以,具體看代碼。DreamJudge1014DreamJudge1014DreamJudgeDreamJudge1014題目解析:這是一道很常見的加解密考法,往后移動3位是這道題的核心,我們只需要按照題意將大寫字母、小寫字母、和其他分開進行處理就可以,具體看代碼。3.12.}16.}19.}}練習題目DreamJudgeDreamJudge1012字符移動DreamJudge1292字母統(tǒng)計DreamJudge1240首字母大寫DreamJudge1394統(tǒng)計單詞DreamJudge1027刪除字符串2第49頁成績排序輸入任意成績排序輸入任意(用戶,成績)序列,可以獲得成績從高到低或從低到高的排列,相同成績都按先錄入排列在前的規(guī)則處理。示例:jack70peter96Tom70第50頁2.6排序類問題排序類的問題基本上是每個學校必考的知識點,所以它的重要性不言而喻。如果你

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論