




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、2011程序設(shè)計競賽選拔賽(實訓(xùn)8)1、 排列列數(shù)由1個“11”,2個個“2”,k個個“3”(1k6)能組成成多少個個不同的的排列? 輸入kk, 輸輸出排列列個數(shù)。k=4, 輸出出:k=5, 輸出出:(1) 設(shè)計要要點注意到1個個“1”,2個個“2”,k個個“3”組成kk+3位位數(shù),首首先通過過k+22個100相乘計算算k+33位數(shù)的的起點bb=100(kk+2),為枚枚舉提供供范圍tt(b4*b-11)。為了檢測kk+3位位數(shù)t含含有多少少個數(shù)字字1、22、3,每每個k+3位整整數(shù)t賦賦給d(以保持持t不變變),然然后通過過k+33次求余余先后分分離出tt的k+3個數(shù)數(shù)字c:if(c=1)
2、ff+, 統(tǒng)計計整數(shù)tt中數(shù)字字1的個數(shù)數(shù)f;if(c=2) gg+, 統(tǒng)計計整數(shù)tt中數(shù)字字2的個數(shù)數(shù)g;if(c=3) h+, 統(tǒng)計計整數(shù)tt中數(shù)字字3的個數(shù)數(shù)h。檢測每一個個k+33位整數(shù)數(shù):若f=1 andd g=2 aand h=kk,則應(yīng)應(yīng)用s進進行統(tǒng)計計。最后輸出所所得排列列個數(shù)ss。(2) 程序設(shè)設(shè)計/ 排列列數(shù)#inclludee void maiin() intt c,f,gg,h,i,jj,k; lonng bb,d,s,tt; priintff( 請輸輸入數(shù)字字3的個個數(shù)k (1k6): ); sscannf(%d,&kk); b=11; ss=0; forr(i=1;
3、ii=kk+2;i+) bb=b*10; / 計計算k+3位數(shù)數(shù)的起點點 forr(t=b;tt=44*b-1;tt+) / 枚枚舉首位位為3的的k+33位數(shù) dd=t;f=00;g=0;hh=0; ffor(j=11;j=k+3;jj+) c=d%110; d=dd/100;if(c=1) f+; / 統(tǒng)計計數(shù)字11的個數(shù)數(shù)if(c=2) g+; / 統(tǒng)計計數(shù)字22的個數(shù)數(shù)if(c=3) h+; / 統(tǒng)計計數(shù)字33的個數(shù)數(shù) if(f=1 & gg=22 & h=k) s+; / 統(tǒng)計計個數(shù)ss priintff( ss=%lld n,s); (3) 程程序運行行示例請輸入數(shù)字字3的個個數(shù)k
4、(1k6): 4s=1055 請輸入數(shù)數(shù)字3的的個數(shù)kk (11k6): 5 s=1168(4) 拓拓廣 若需求求k=1000時的排排列數(shù),如如何求?1) 注意意到一排排k個“3”的空位位共k+1個。這k+1個個選2個個空位共共C(kk+1,2)種種組合,每每一空位位放置11個“2”。這k+1個個選1個個空位共共C(kk+1,1)種種組合,空空位中放放置2個個“2”。2) 注意意到一排排k個“3”與2個個“2”的空位位共k+3個。這k+3個個選1個個空位共共C(kk+3,1)種種組合,空空位中放放置1個個“1”。3) 因而而得不同同的排列列數(shù)為:(C(k+1,22)+CC(k+1,11)*C(
5、kk+3,1)=(k+1)*(k+2)*(k+3)/2/ 排列列數(shù)#inclludee void maiin() intt k;lonng ss; priintff( 請輸輸入數(shù)字字3的個個數(shù)k: ); sscannf(%d,&kk); s=(k+11)*(k+22)*(k+33)/22; prinntf( s=%ldd nn,ss); 請輸入數(shù)字字3的個個數(shù)k: 1000 s=55305553(5) 實訓(xùn)11計算由2個個“1”、2個個“2”、k個個“3”的排列列數(shù)。計算由3個個“1”、2個個“2”、k個個“3”的排列列數(shù)。測試數(shù)據(jù): k=502、 求最最值設(shè)n為正整整數(shù),式中各各項符號號為二
6、正正一負(fù)。求當(dāng)n為多大時,s(n)最接近指定的正整數(shù)a?輸入a, 輸出ss(n)最接近近a的nn,s(n)。(1) 輸輸入10000,輸出:(2) 輸輸入20011,輸出:解: 一般般地求當(dāng)當(dāng)n為多多大時,ss(n)最接近近正整數(shù)數(shù)a?其其中a從從鍵盤輸輸入a。/ s(n)=1+11/(11+1/2)-1/(1+11/2+1/33)+.+1/(1+11/2+.+1/n)#inclludee #inclludeevoid maiin() lonng aa,n,n1; douublee m,ts,s,ss1; priintff( 請輸輸入a: ); scaanf(%dd,&a); n=00;tss
7、=0;s=00;m=10000000.0; whiile(saa+100) nn=n+1; tts=tts+(douublee)1/n; / ts為為各項的的分母if(nn%3=0) ss=s-1/tts; / 求代數(shù)數(shù)和selsee ss=s+1/tts; iif(ffabss(s-a)z。為為避免重重復(fù),不不妨設(shè)xxyz。在指定區(qū)間間a,b上上根據(jù)xx,y,z的大大小關(guān)系系設(shè)置循循環(huán):zz從a至至b-22,y從從z+11至b-1,xx從y+1至bb。對每一組xx,y,z,如如果直接接應(yīng)用條條件式 1/(x*xx)+11/(yy*y)=1/(z*z)作判別,因因分?jǐn)?shù)計計算的不不可避免免的誤差
8、差,有可可能把一一些成立立的倒立立勾股數(shù)數(shù)組解遺遺失,即造成成遺漏。注意到上述述分?jǐn)?shù)條條件式作作通分整整理得到到的下面面的正整整數(shù)條件件式 z*zz*(xx*x+y*yy)=xx*x*y*yy程序中為防防止發(fā)生生解的遺遺漏,應(yīng)應(yīng)用上述述整數(shù)條條件作判判別是適適宜的。(2) 求求區(qū)間內(nèi)內(nèi)倒立勾勾股數(shù)程程序設(shè)計計/ 求求指定區(qū)區(qū)間內(nèi)倒倒立勾股股數(shù)組 #inclludee #inclludee void maiin()int a,bb,n; loong x,yy,z; prinntf( 求求指定區(qū)區(qū)間aa,b內(nèi)倒立立的勾股股數(shù)組.); prinntf(nn 請輸輸入?yún)^(qū)間間a,b的的上下限限a,bb:
9、 ); scannf(%d,%d,&aa,&bb); prinntf(nn 區(qū)間間%dd,%dd中倒倒立的勾勾股數(shù)組組有:n,a,bb); n=0; for(z=aa;z=b-2;zz+) for(y=zz+1;y=b-11;y+) for(x=yy+1;x=b;xx+) iif(zz*z*(x*x+yy*y)=xx*x*y*yy) / 滿足倒倒立勾股股數(shù)條件件時輸出出 n+; priintff( 1/%ld2+11/%lld22=1/%ldd2 n,x,y,zz); prinntf(共%d組勾勾股數(shù).,nn); (3) 程程序運行行示例區(qū)間300,1000中中倒立的的勾股數(shù)數(shù)組有: 1/60
10、02+1/44522=1/362 1/8002+1/66022=1/482 1/100022+1/752=11/6002共3組勾股股數(shù).區(qū)間1000,2200中倒立立的勾股股數(shù)組有有: 1/188022+1/13552=1/11082 1/200022+1/15002=1/11202共2組勾股股數(shù).4、 雙和和數(shù)組尋求6個互互不相等等的正整整數(shù)a,b,cc,d,e,ff并分成(a,bb,c)與(dd,e,f)兩兩個組,若若這兩組組數(shù)具有有以下兩兩個相等等特性:則把數(shù)組(a,bb,c)與(dd,e,f)稱稱為雙和和數(shù)組(約定aabc,ddef,aad)。1) 設(shè)aa+b+c=dd+e+f=ss,
11、 存存在雙和和數(shù)組, s至至少為多多大?2) 當(dāng)ss=988時有多多少個不不同的雙雙和數(shù)組組?(1) 求解要要點從鍵盤輸入入整數(shù)ss,因66個不同同正整數(shù)數(shù)之和至至少為221,即即輸入整整數(shù)s11。設(shè)置a,bb與d,e循環(huán)環(huán)。注意意到a+b+cc=s,且且abbaa,因而而d起點點為a+1。把比較倒數(shù)數(shù)和相等等1/aa+1/b+1/cc1/d+1/ee+1/ff轉(zhuǎn)化為為比較整整數(shù)相等等d*e*ff*(bb*c+c*aa+a*b)=a*bb*c*(e*f+ff*d+d*ee) (*)若上式不成成立,即即倒數(shù)和和不相等等,則返返回。同時注意到到兩個33元組中中若部分分相同部部分不同同,不能能有倒數(shù)
12、數(shù)和相等等,因而而可省略略排除以以上6個個正整數(shù)數(shù)中是否否存在相相等的檢檢測。若式(*)成成立,打打印輸出出和為ss的雙和和數(shù)組,并并用x統(tǒng)統(tǒng)計解的的個數(shù)。(2) C程序序設(shè)計/ 雙和和數(shù)組探探索 #inclludee#inclludeevoid maiin()int a,bb,c,d,ee,f,x,ss;for(ss=211;s=1000;ss+)prinntf( s=%d: n,s); x=0;for(aa=1;a=(s-3)/3;aa+)for(bb=a+1;bb=(s-aa-1)/2;b+)for(dd=a+1;dd=(s-33)/33;d+)for(ee=d+1;ee=(s-dd-1
13、)/2;e+)c=s-a-bb; ff=s-d-ee;if(a*b*cc*(ee*f+f*dd+d*e)!=d*e*ff*(bb*c+c*aa+a*b)contiinuee; / 排除除倒數(shù)和和不相等等 x+;printtf(%3dd: (%2dd,%22d,%2d) ,x,a,bb,c);printtf(%22d,%2d,%2dd)nn,dd,e,f);if(x=0) prrinttf( 無無解!n);(3) 程序運運行結(jié)果果與討論論s=26:1: ( 4,110,112) ( 5, 6,115) s=98:1: ( 2,336,660) ( 3, 5,990) 2: ( 7,228,663
14、) ( 8,118,772) 3: ( 7,335,556) ( 8,220,770) 4: (110,333,555) (112,220,666) (4) 實實訓(xùn)3尋求6個互互不相等等的正整整數(shù)a,b,cc,d,e,ff并分成(a,bb,c)與(dd,e,f)兩兩個組,若若這兩組組數(shù)具有有以下兩兩個相等等特性:則把數(shù)組(a,bb,c)與(dd,e,f)稱稱為和積積數(shù)組(約定aabc,ddef,aad)。1) 設(shè)aa+b+c=dd+e+f=ss, 存存在和積積數(shù)組, s至至少為多多大?2) 當(dāng)ss=899時有多多少個不不同的和和積數(shù)組?5、 m位位完美平方方數(shù)用0,1,2,.,9能組組成多少少
15、個沒有有重復(fù)數(shù)數(shù)字的mm(1m10)位平方方數(shù)? 輸入m,輸輸出沒有有重復(fù)數(shù)數(shù)字的mm位平方方數(shù)的個個數(shù),并并輸出其其中最大大的。m=7, 輸出:m=10, 輸出出:/ 用00,1,2,.,9組成成沒有重重復(fù)數(shù)字字的m位位平方數(shù)數(shù) #inclludee #inclludee void maiin()int k,mm,n,t,ff100; doublle aa,b,c,dd,w,x,aa1,dd1;printtf( 請請確定整整數(shù)m: ); sscannf(%d,&mm);x=1.00;for(kk=2;k=m;kk+) x=x*110; / 確確定m位位數(shù)的起起點xn=0;b=(innt)pp
16、ow(x,00.5);c=poww(100*x-1,00.5);for(aa=b+1;aa=cc;a+)d=a*a; w=dd; / 確保保d為mm位平方方數(shù) for(k=00;k0) t=(innt)ffmodd(w,10);ft=ftt+11;w=flooor(w/110); for(t=00,k=0;kk1) t=1; breeak; / 測試平平方數(shù)是是否有重重復(fù)數(shù)字字 if(tt=00 ) / 測試試平方數(shù)數(shù)中沒有有重復(fù)數(shù)數(shù)字 n+;dd1=dd;a11=a;printtf( 共共可組成成%d個個沒有重重復(fù)數(shù)字字的%dd位平方方數(shù).,n,m);printtf( 其中中最大的的為:%.
17、0ff=%.0f2 n,d1,a1); 請確定整數(shù)數(shù)m: 7共可組成1123個個沒有重重復(fù)數(shù)字字的7位位平方數(shù)數(shù). 其其中最大大的為:987721664=3314222請確定整數(shù)數(shù)m: 10共可組成887個沒沒有重復(fù)復(fù)數(shù)字的的10位位平方數(shù)數(shù). 其其中最大大的為:9811407723556=999066622實訓(xùn)4:用0,1,2,.,9能組組成沒有有重復(fù)數(shù)數(shù)字的mm(1m10)位平方方數(shù)的個個數(shù)為ss(m).問: (11) 求求s(110),即即求出沒有重重復(fù)數(shù)字字的100位平方方數(shù)的個個數(shù)。(2)當(dāng)mm為多大大時,沒沒有重復(fù)復(fù)數(shù)字的的m位平方方數(shù)個數(shù)數(shù)s(mm)最大?6、 最小小01串串積程
18、序設(shè)計愛愛好者AA,B進進行計算算游戲:B任給一個個正整數(shù)數(shù)b,A尋求另另一個整整數(shù)a, 使aa 與bb的積最最小且全全為0與與1組成的的數(shù)。例如,B給給出整數(shù)數(shù)24,AA尋求整整數(shù)a:46225,使使得a*b的最最小011串積為為:11110000輸入b,輸輸出a與與最小001串積積。b=24, 輸出出:b=20111, 輸出:(1)對aa枚舉考慮到a與與積d可可能大于于10位位,用雙精精度型。對a遞增枚枚舉,檢測積積d=aa*b是是否為001串/ 001串積積對a枚枚舉 #inclludee #inclludee void maiin() loong c,tt;dooublle aa,b,
19、d,jj; prrinttf( BB給出整整數(shù)b: ); sscannf(%lff,&b); a=1; whhilee(1) a+;dd=a*b; j=d;tt=0; whhilee(j0) / 分離積積的各個個數(shù)字cc c=(intt)fmmod(j,110); j=flooor(j/110);if(c1) t=1;bbreaak; / 檢檢測是否否含有00,1以以外的數(shù)數(shù)字if(t=0) priintff( A尋尋求整數(shù)數(shù)a: %.00f:n,a);printtf( aa*b的的最小001串積積為: %.00fnn,dd);breakk;B給出整數(shù)數(shù)b: 73 A尋求整整數(shù)a: 1337:
20、 a*b的的最小001串積積為: 100001B給出整數(shù)數(shù)b: 54 A尋求整整數(shù)a: 200390094665: a*b的的最小001串積積為: 11001111111110(2) 二二進制枚枚舉,應(yīng)應(yīng)用余數(shù)數(shù)判別。1) 注意意到01串積為十十進制數(shù)數(shù),應(yīng)用用求余運運算“%”可分別別求得個個位“1”,十位位“1”,分別別除以已已給b的余數(shù)數(shù),存放放在c數(shù)數(shù)組中:c(11)為1,cc(2)為100除以bb的余數(shù)數(shù),c(3)為為1000除以bb的余數(shù)數(shù),。2) 要從從小到大大搜索001串,不不重復(fù)也也不遺漏漏,從中中找出最最小的能能被b整整除011串積。為此此,設(shè)置置k從11開始遞遞增,把把k轉(zhuǎn)
21、化化為二進進制,就就得到所所需要的的這些串串。不過過,這時時每個串串不再看看作二進進制數(shù),而而要看作作十進制制數(shù)。3) 在某某一k轉(zhuǎn)轉(zhuǎn)化為二二進制數(shù)數(shù)過程中中,每轉(zhuǎn)轉(zhuǎn)化一位位a(ii)(00或1),求求出該位位除以bb的余數(shù)數(shù)a(ii)*cc(i),通過過累加求求和得kk轉(zhuǎn)化的的整個二二進制數(shù)數(shù)除以bb的余數(shù)數(shù)s。4) 判別別余數(shù)ss 是否否被b整除:若s%b=00, 即即找到所所求最小小的011串積。aa 從高高位開始始除以bb的商存存儲在dd數(shù)組,實施整數(shù)除法運算:x=e*110+aaj;/ e為為上輪余余數(shù),xx為被除除數(shù) dj=x/bb; / dd為a 從高位位開始除除以b的的商 e=x%bb;/ e為為試商余余數(shù) 去掉d數(shù)組組的高位位“0”后,輸輸出d即即為所尋尋求的數(shù)數(shù)。最后從高位位開始打打印a數(shù)數(shù)組,即即為011串積。(3) 程程序設(shè)計計/ 001串積積二進制制枚舉#inclludeevoid maiin() innt bb,e,i,jj,t,x,aa20000,d20000,c220000; loong k,ss; p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度汽車品牌授權(quán)銷售合同模板
- 2025廣東省廣晟控股集團校園招聘2000人筆試參考題庫附帶答案詳解
- 交通工程學(xué)(視頻課)知到智慧樹章節(jié)測試課后答案2024年秋北京工業(yè)大學(xué)
- 2025年如東水務(wù)集團所屬子公司公開遴選工作人員及招聘勞務(wù)人員6人筆試參考題庫附帶答案詳解
- 2025年中儲糧儲運有限公司社會招聘吉林省崗位筆試參考題庫附帶答案詳解
- 污水泵站施工組織設(shè)計
- 金融反洗錢知識培訓(xùn)課件
- 2024首都文化科技集團有限公司人才招聘10人筆試參考題庫附帶答案詳解
- 2024福建福州市倉山區(qū)國有投資發(fā)展集團有限公司招聘3人筆試參考題庫附帶答案詳解
- 2025年上半年全國事業(yè)單位招考(107人)易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年駕駛證資格考試科目一必刷題庫及答案(共300題)
- 大學(xué)英語四級必背單詞詞匯資料表
- 保安培訓(xùn)課件(44張)
- DL∕T 796-2012 風(fēng)力發(fā)電場安全規(guī)程
- AQ 1110-2014 煤礦帶式輸送機用盤式制動裝置安全檢驗規(guī)范(正式版)
- 2024年瀘西縣惠民供水限公司公開招聘7人【重點基礎(chǔ)提升】模擬試題(共500題)附帶答案詳解
- 《無損檢測(第2版)》 課件緒論
- 腎上腺腫物的護理(演示模板)
- 2024年湖南工業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫參考答案
- 電工流體 變壓器和開關(guān)用的未使用過的礦物絕緣油
- 2024年安徽醫(yī)學(xué)高等??茖W(xué)校單招職業(yè)適應(yīng)性測試題庫帶答案
評論
0/150
提交評論