




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2013藍(lán)橋杯C語(yǔ)言本科組B1、題目標(biāo)題: 高斯日記(滿(mǎn)分4分)大數(shù)學(xué)家高斯有個(gè)好習(xí)慣:無(wú)論如何都要記日記。他的日記有個(gè)與眾不同的地方,他從不注明年月日,而是用一個(gè)整數(shù)代替,比如:4210后來(lái)人們知道,那個(gè)整數(shù)就是日期,它表示那一天是高斯出生后的第幾天。這或許也是個(gè)好習(xí)慣,它時(shí)時(shí)刻刻提醒著主人:日子又過(guò)去一天,還有多少時(shí)光可以用于浪費(fèi)呢?高斯出生于:1777年4月30日。 在高斯發(fā)現(xiàn)的一個(gè)重要定理的日記上標(biāo)注著:5343,因此可算出那天是:1791年12月15日。高斯獲得博士學(xué)位的那天日記上標(biāo)著:8113 請(qǐng)你算出高斯獲得博士學(xué)位的年月日。提交答案的格式是:yyyy-mm-dd, 例如:198
2、0-03-21答案:1799-7-16(本題拿電腦的計(jì)算器算的)2、題目標(biāo)題: 馬虎的算式(滿(mǎn)分5分)小明是個(gè)急性子,上小學(xué)的時(shí)候經(jīng)常把老師寫(xiě)在黑板上的題目抄錯(cuò)了。有一次,老師出的題目是:36 x 495 = ?他卻給抄成了:396 x 45 = ?但結(jié)果卻很戲劇性,他的答案竟然是對(duì)的!因?yàn)?36 * 495 = 396 * 45 = 17820類(lèi)似這樣的巧合情況可能還有很多,比如:27 * 594 = 297 * 54假設(shè) a b c d e 代表19不同的5個(gè)數(shù)字(注意是各不相同的數(shù)字,且不含0)能滿(mǎn)足形如: ab * cde = adb * ce 這樣的算式一共有多少種呢?答案:142種
3、#includeint main()int a,b,c,d,e;int sum=0;for(a=1;a10;a+)for(b=1;b10;b+)for(c=1;c10;c+)for(d=1;d10;d+)for(e=1;e10;e+)if(10*a+b)*(100*c+10*d+e)=(a*100+d*10+b)*(c*10+e)&a!=b&a!=c&a!=d&a!=e&b!=c&b!=d&b!=e&c!=d&c!=e&d!=e)sum+;printf(%3d,%3d,%3d,%3d,%3dn,a,b,c,d,e);printf(%4d種n,sum);請(qǐng)你利用計(jì)算機(jī)的優(yōu)勢(shì)尋找所有的可能,并回答
4、不同算式的種類(lèi)數(shù)。滿(mǎn)足乘法交換律的算式計(jì)為不同的種類(lèi),所以答案肯定是個(gè)偶數(shù)。答案:142種#includeint main()int a,b,c,d,e;int sum=0;for(a=1;a10;a+)for(b=1;b10;b+)for(c=1;c10;c+)for(d=1;d10;d+)for(e=1;e10;e+)if(10*a+b)*(100*c+10*d+e)=(a*100+d*10+b)*(c*10+e)&a!=b&a!=c&a!=d&a!=e&b!=c&b!=d&b!=e&c!=d&c!=e&d!=e)sum+;printf(%3d,%3d,%3d,%3d,%3dn,a,b,c
5、,d,e);printf(%4d種n,sum);3、題目標(biāo)題: 第39級(jí)臺(tái)階(滿(mǎn)分8分)小明剛剛看完電影第39級(jí)臺(tái)階,離開(kāi)電影院的時(shí)候,他數(shù)了數(shù)禮堂前的臺(tái)階數(shù),恰好是39級(jí)!站在臺(tái)階前,他突然又想著一個(gè)問(wèn)題:如果我每一步只能邁上1個(gè)或2個(gè)臺(tái)階。先邁左腳,然后左右交替,最后一步是邁右腳,也就是說(shuō)一共要走偶數(shù)步。那么,上完39級(jí)臺(tái)階,有多少種不同的上法呢?請(qǐng)你利用計(jì)算機(jī)的優(yōu)勢(shì),幫助小明尋找答案。解答:/有左右腳的限制,即第一步必須左腳,然后左右交替,最后一步必須是右腳。即必須走偶數(shù)步。#include/有左右腳的限制。const int N=39;int f(int m,int n)if(m=0|
6、n=0)return 1;return(f(m-1,n)+f(m,n-1);/遞歸的關(guān)鍵在此,大規(guī)模逐漸轉(zhuǎn)化為小規(guī)模。int main()int x=N/2,y;/x表示走兩步的次數(shù),y表示走一步的次數(shù)。int i,sum=0;for(i=x;x=0;x-=2)/為了保持偶數(shù)步,必須x每次遞減2,而不是1;(x要x=0,不能x0),x=0是針對(duì)偶數(shù)臺(tái)階。y=N-2*x;sum+=f(x,y);/求組合數(shù);cout共有 sum種走法。endl;return 0;/51167078種走法。4、題目標(biāo)題: 黃金連分?jǐn)?shù)(滿(mǎn)分12分)黃金分割數(shù)0.61803. 是個(gè)無(wú)理數(shù),這個(gè)常數(shù)十分重要,在許多工程問(wèn)
7、題中會(huì)出現(xiàn)。有時(shí)需要把這個(gè)數(shù)字求得很精確。對(duì)于某些精密工程,常數(shù)的精度很重要。也許你聽(tīng)說(shuō)過(guò)哈勃太空望遠(yuǎn)鏡,它首次升空后就發(fā)現(xiàn)了一處人工加工錯(cuò)誤,對(duì)那樣一個(gè)龐然大物,其實(shí)只是鏡面加工時(shí)有比頭發(fā)絲還細(xì)許多倍的一處錯(cuò)誤而已,卻使它成了“近視眼”!言歸正傳,我們?nèi)绾吻蟮命S金分割數(shù)的盡可能精確的值呢?有許多方法。比較簡(jiǎn)單的一種是用連分?jǐn)?shù): 1 黃金數(shù) = - 1 1 + - 1 1 + - 1 1 + - 1 + .這個(gè)連分?jǐn)?shù)計(jì)算的“層數(shù)”越多,它的值越接近黃金分割數(shù)。請(qǐng)你利用這一特性,求出黃金分割數(shù)的足夠精確值,要求四舍五入到小數(shù)點(diǎn)后100位。小數(shù)點(diǎn)后3位的值為:0.618 小數(shù)點(diǎn)后4位的值為:0.6
8、180 小數(shù)點(diǎn)后5位的值為:0.61803 小數(shù)點(diǎn)后7位的值為:0.6180340 (注意尾部的0,不能忽略)你的任務(wù)是:寫(xiě)出精確到小數(shù)點(diǎn)后100位精度的黃金分割值。注意:尾數(shù)的四舍五入! 尾數(shù)是0也要保留!答案:至今不會(huì),如果你做出來(lái),給我發(fā)一下5、題目標(biāo)題:前綴判斷(滿(mǎn)分5分)如下的代碼判斷 needle_start指向的串是否為haystack_start指向的串的前綴,如不是,則返回NULL。比如:abcd1234 就包含了 abc 為前綴char* prefix(char* haystack_start, char* needle_start)char* haystack = hay
9、stack_start;char* needle = needle_start;while(*haystack & *needle)if(*(needle+)!=*(haystack) return NULL; /填空位置if(*needle) return NULL;return haystack_start;答案:#include#includechar* prefix(char* haystack_start, char* needle_start)char* haystack = haystack_start;char* needle = needle_start;while(*hay
10、stack & *needle)if(*(needle+)!=*(haystack+) return NULL; /填空位置if(*needle) return NULL;return haystack_start;int main()char needle_start100=abc,haystack_start100=abc123;if(prefix(haystack_start,needle_start)cout是endl;elsecout否endl;return 0;6、題目標(biāo)題:三部排序(滿(mǎn)分7分)一般的排序有許多經(jīng)典算法,如快速排序、希爾排序等。但實(shí)際應(yīng)用時(shí),經(jīng)常會(huì)或多或少有一些特殊
11、的要求。我們沒(méi)必要套用那些經(jīng)典算法,可以根據(jù)實(shí)際情況建立更好的解法。比如,對(duì)一個(gè)整型數(shù)組中的數(shù)字進(jìn)行分類(lèi)排序:使得負(fù)數(shù)都靠左端,正數(shù)都靠右端,0在中部。注意問(wèn)題的特點(diǎn)是:負(fù)數(shù)區(qū)域和正數(shù)區(qū)域內(nèi)并不要求有序。可以利用這個(gè)特點(diǎn)通過(guò)1次線性掃描就結(jié)束戰(zhàn)斗!以下的程序?qū)崿F(xiàn)了該目標(biāo)。其中x指向待排序的整型數(shù)組,len是數(shù)組的長(zhǎng)度。void sort3p(int* x, int len)int p = 0;int left = 0;int right = len-1;while(p=right)if(xp0)int t = xright;xright = xp;xp = t;right-;elseP+; /
12、填空位置如果給定數(shù)組: 25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0 則排序后為: -3,-2,-16,-5,0,0,0,21,19,33,25,16,18,25答案:#include#includevoid sort3p(int* x, int len);int main()int a14=0,i;for(i=0;i14;i+)scanf(%3d,&ai);sort3p(a,14);for(i=0;i14;i+)printf(%4d,ai);return 0;void sort3p(int* x, int len)int p = 0;int left = 0
13、;int right = len-1;while(p=right)if(xp0)int t = xright;xright = xp;xp = t;right-;elsep+; /填空位置7、題目標(biāo)題:錯(cuò)誤票據(jù)(滿(mǎn)分4分)某涉密單位下發(fā)了某種票據(jù),并要在年終全部收回。每張票據(jù)有唯一的ID號(hào)。全年所有票據(jù)的ID號(hào)是連續(xù)的,但I(xiàn)D的開(kāi)始數(shù)碼是隨機(jī)選定的。因?yàn)楣ぷ魅藛T疏忽,在錄入ID號(hào)的時(shí)候發(fā)生了一處錯(cuò)誤,造成了某個(gè)ID斷號(hào),另外一個(gè)ID重號(hào)。你的任務(wù)是通過(guò)編程,找出斷號(hào)的ID和重號(hào)的ID。假設(shè)斷號(hào)不可能發(fā)生在最大和最小號(hào)。要求程序首先輸入一個(gè)整數(shù)N(N100)表示后面數(shù)據(jù)行數(shù)。接著讀入N行數(shù)據(jù)。每
14、行數(shù)據(jù)長(zhǎng)度不等,是用空格分開(kāi)的若干個(gè)(不大于100個(gè))正整數(shù)(不大于100000)每個(gè)整數(shù)代表一個(gè)ID號(hào)。要求程序輸出1行,含兩個(gè)整數(shù)m n,用空格分隔。其中,m表示斷號(hào)ID,n表示重號(hào)ID例如:用戶(hù)輸入:25 6 8 11 9 10 12 9則程序輸出:7 9再例如:用戶(hù)輸入:6164 178 108 109 180 155 141 159 104 182 179 118 137 184 115 124 125 129 168 196172 189 127 107 112 192 103 131 133 169 158 128 102 110 148 139 157 140 195 1971
15、85 152 135 106 123 173 122 136 174 191 145 116 151 143 175 120 161 134 162 190149 138 142 146 199 126 165 156 153 193 144 166 170 121 171 132 101 194 187 188113 130 176 154 177 120 117 150 114 183 186 181 100 163 160 167 147 198 111 119則程序輸出:105 120資源約定:峰值內(nèi)存消耗 64MCPU消耗 1000ms答案:(忘記了,不過(guò)簡(jiǎn)單)8、題目標(biāo)題:翻硬幣(
16、滿(mǎn)分10分)小明正在玩一個(gè)“翻硬幣”的游戲。桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫(xiě)字母,不是零)。比如,可能情形是:*oo*oooo 如果同時(shí)翻轉(zhuǎn)左邊的兩個(gè)硬幣,則變?yōu)椋簅ooo*oooo現(xiàn)在小明的問(wèn)題是:如果已知了初始狀態(tài)和要達(dá)到的目標(biāo)狀態(tài),每次只能同時(shí)翻轉(zhuǎn)相鄰的兩個(gè)硬幣,那么對(duì)特定的局面,最少要翻動(dòng)多少次呢? 我們約定:把翻動(dòng)相鄰的兩個(gè)硬幣叫做一步操作,那么要求:程序輸入:兩行等長(zhǎng)的字符串,分別表示初始狀態(tài)和要達(dá)到的目標(biāo)狀態(tài)。每行的長(zhǎng)度1000程序輸出:一個(gè)整數(shù),表示最小操作步數(shù)例如:用戶(hù)輸入:*o*o*程序應(yīng)該輸出:5再例如:用戶(hù)輸入:*o*o*o*o
17、*o*o*程序應(yīng)該輸出:1資源約定:峰值內(nèi)存消耗 64MCPU消耗 1000ms/翻銀幣問(wèn)題,求最小翻轉(zhuǎn)數(shù)。#include#include#includevoid turn(char *c,int k)int j;for(j=k;j=k+1;j+)if(cj=*)cj=o;continue;if(cj=o)cj=*;continue;void handle(char *a,char *b)int i,count=0;char c100;strcpy(c,a);/c用來(lái)暫時(shí)代替a,以防a以后有用。for(i=0;ci!=0;i+)/?if(ci!=bi)turn(c,i);count+;cou
18、tMIN is :countendl;int main()char a100=*o*,b100=o*o*o;char m100=0,n100=0;/第種輸入方式,不用getchar();/gets(m);/起始狀態(tài)/gets(n);/目標(biāo)狀態(tài)/第種輸入方式,需要回收 Enter鍵,防止影響后面的%s的輸入。scanf(%s,a);/起始狀態(tài)getchar();/不能省略此語(yǔ)句scanf(&s,b);/目標(biāo)狀態(tài)handle(a,b);return 0;9、題目標(biāo)題:帶分?jǐn)?shù)(滿(mǎn)分16分)100 可以表示為帶分?jǐn)?shù)的形式:100 = 3 + 69258 / 714還可以表示為:100 = 82 + 3
19、546 / 197注意特征:帶分?jǐn)?shù)中,數(shù)字19分別出現(xiàn)且只出現(xiàn)一次(不包含0)。類(lèi)似這樣的帶分?jǐn)?shù),100 有 11 種表示法。題目要求:從標(biāo)準(zhǔn)輸入讀入一個(gè)正整數(shù)N (N1000*1000)程序輸出該數(shù)字用數(shù)碼19不重復(fù)不遺漏地組成帶分?jǐn)?shù)表示的全部種數(shù)。注意:不要求輸出每個(gè)表示,只統(tǒng)計(jì)有多少表示法!例如:用戶(hù)輸入:100程序輸出:11再例如:用戶(hù)輸入:105程序輸出:6資源約定:峰值內(nèi)存消耗 64MCPU消耗 3000ms答案:(至今不會(huì)做)10、題目標(biāo)題:連號(hào)區(qū)間數(shù)(滿(mǎn)分29分)小明這些天一直在思考這樣一個(gè)奇怪而有趣的問(wèn)題:在1N的某個(gè)全排列中有多少個(gè)連號(hào)區(qū)間呢?這里所說(shuō)的連號(hào)區(qū)間的定義是:如果區(qū)間L, R 里的所有元素(即此排列的第L個(gè)到第R個(gè)元素)遞增排序后能得到一個(gè)長(zhǎng)度為R-L+1的“連續(xù)”數(shù)列,則稱(chēng)這個(gè)區(qū)間連號(hào)區(qū)間。當(dāng)N很小的時(shí)候,小明可以很快地算出答案,但是當(dāng)N變大的時(shí)候,問(wèn)題就不是那么簡(jiǎn)單了,現(xiàn)在小明需要你的幫助。輸入格式:第一行是一個(gè)正整數(shù)N (1 = N = 50000), 表示全排列的規(guī)模。第二行是N個(gè)不同的數(shù)字Pi(1 = Pi = N), 表示這N個(gè)數(shù)字的某一全排列。輸出格式:輸出一個(gè)整數(shù),表示不同連號(hào)區(qū)間的數(shù)目。示例:用戶(hù)輸入:43 2 4 1程序應(yīng)輸出:7用戶(hù)輸入:53 4 2 5 1程序應(yīng)輸出:9解釋?zhuān)旱谝粋€(gè)用例中,有
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 經(jīng)濟(jì)運(yùn)行管理及財(cái)務(wù)知識(shí)分析
- 湖北省鄂州市華容區(qū)2024-2025學(xué)年數(shù)學(xué)三下期末質(zhì)量跟蹤監(jiān)視試題含解析
- 哈爾濱工業(yè)大學(xué)《鋼琴即興伴奏(一)》2023-2024學(xué)年第二學(xué)期期末試卷
- 邯鄲應(yīng)用技術(shù)職業(yè)學(xué)院《給排水施工與監(jiān)理》2023-2024學(xué)年第二學(xué)期期末試卷
- 佳木斯職業(yè)學(xué)院《馬克思主義哲學(xué)原著》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南益陽(yáng)箴言中學(xué)2024-2025學(xué)年普通高中畢業(yè)班單科質(zhì)量檢查語(yǔ)文試題含解析
- 山東省2025屆高三下學(xué)期診斷性考試化學(xué)試題含解析
- 河海大學(xué)《發(fā)酵食品工藝學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南理工職業(yè)技術(shù)學(xué)院《土木工程檢測(cè)技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 海口經(jīng)濟(jì)學(xué)院《病原生物學(xué)與免疫學(xué)實(shí)驗(yàn)(微免)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2016眾泰t600運(yùn)動(dòng)版原廠維修手冊(cè)與電路圖-使用說(shuō)明
- Sigma-Delta-ADC講稿教學(xué)講解課件
- 《春秋三傳導(dǎo)讀》課件
- 教師情緒和壓力疏導(dǎo)課件
- 麻醉科進(jìn)修匯報(bào)課件
- ISO-IEC 27002-2022中文版完整詳細(xì)
- 【計(jì)算機(jī)應(yīng)用基礎(chǔ)試題】上海中僑職業(yè)技術(shù)大學(xué)2022年練習(xí)題匯總(附答案解析)
- 艾滋病(AIDS)經(jīng)典課件
- 義務(wù)教育質(zhì)量監(jiān)測(cè)小學(xué)四年級(jí) 德育模擬試卷附答案
- 年產(chǎn)5萬(wàn)噸電石爐窯節(jié)能改造項(xiàng)目環(huán)境影響后評(píng)價(jià)報(bào)告
- 國(guó)內(nèi)外材料牌號(hào)對(duì)照
評(píng)論
0/150
提交評(píng)論