附 第二次模擬總結_第1頁
附 第二次模擬總結_第2頁
附 第二次模擬總結_第3頁
附 第二次模擬總結_第4頁
附 第二次模擬總結_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

ModifiedbyLGuo;第二次模擬總結程序設計語言C3224數素數Description令Pi表示第i個素數。現任給兩個正整數M<=N<=104,請輸出PM到PN的所有素數。Input輸入在一行中給出M和N,其間以空格分隔。Output輸出從PM到PN的所有素數,每10個數字占1行,其間以空格分隔,但行末不得有多余空格。2SampleInput527SampleOutput111317192329313741434753596167717379838997101103參考代碼3intmain(){intm,n,cnt,i,ncnt;//freopen("in.txt","r",stdin);scanf("%d%d",&m,&n);cnt=ncnt=0;for(i=2;cnt<=n;i++){if(isPrime(i)){cnt++;//統計是第幾個素數if(cnt>=m&&cnt<=n){ncnt++;//統計打印了幾個if(ncnt%10==1)printf("%d",i);elseprintf("%d",i);if(ncnt%10==0)printf("\n");}}}if(ncnt%10!=0)printf("\n");return0;}#include<stdio.h>intisPrime(intm){intflag=1,i;for(i=2;i<=m/2;i++){if(m%i==0){flag=0;break;}}returnflag;}本題自我檢討:輸出格式不在話下,提交一看TimeLimitExceed,頓時懷疑算法不對,覺得求素數不夠高效。。。結果是因為變量沒用對造成了死循環。TimeLimitExceed,幾乎都是死循環造成!OutputLimitExceed,幾乎都是死循環造成!尤其查看輸出!freopen沒有注釋掉,可能造成死循環!PresentationError,福利啊,表示輸出格式不對,一般是少了"\n"或者多了"\n"(這個很偶然);或者多了少了空格!41024銀行利率Description設行1年期定期存款年利率為2.25%,存款本金為deposit元,試編程計算并輸出n年后的本利之和。Input輸入一個正整數和一個實數,分別代表存款年數和存款本金。Output輸出一個雙精度實數,小數點后保留6位有效數字。5SampleInput2100SampleOutput104.550625參考代碼6#include<stdio.h>intmain(){intn,i;doubled;//freopen("in.txt","r",stdin);scanf("%d%lf",&n,&d);//讀入年數和本金for(i=1;i<=n;i++){d*=1.0225;}printf("%.6f\n",d);//要是數不對可以用插樁法一步步查,看看是不是多循環或者少循環了一次return0;}1004A+BProblemIVDescription給定一些整數,對他們求和。Input輸入數據有多行。每行數據中第一個整數N(0<=N<=100),后面跟著N個整數ai

(-1000<=ai<=1000)最后一行數據是0,標志著輸入結束。

0一行本身不需要計算輸出。Output對每一行N個正整數ai求和并輸出。7SampleInput412345123450SampleOutput1015參考代碼8//解法1#include<stdio.h>intmain(){intn,i,sum,tmp;

//freopen("in.txt","r",stdin);while(scanf("%d",&n)&&n!=0){sum=0;for(i=1;i<=n;i++){

scanf("%d",&tmp);sum+=tmp;}printf("%d\n",sum);}return0;}9//解法2#include<stdio.h>intmain(){intn,i,sum,tmp;

//freopen("in.txt","r",stdin);

do{

scanf("%d",&n);if(n==0)break;

else{

sum=0;for(i=1;i<=n;i++){scanf("%d",&tmp);sum+=tmp;}printf("%d\n",sum);}}while(1);return0;}1051統計數字字符的個數1Description輸入一行字符,以回車符作為輸入結束的標志。統計其中數字字符的個數Input多個字符,以回車符結束,回車符不作為有效字符Output輸出一個整數,表示數字字符的個數。10SampleInput12abrt12@2013SampleOutput8參考代碼11#include<stdio.h>intmain(){intsum;charc;

//freopen("in.txt","r",stdin);sum=0;while(scanf("%c",&c)!=EOF){if(c>='0'&&c<='9')//字符比較,實際上是比較其ASCII碼sum++;}printf("%d\n",sum);return0;}其他解法:1)c>=48&&c<=572)(int)c>=48&&(int)c<=57迷信的吳醫生和機智的護士Description吳醫生是個很迷信的醫生,他認為與4相關的數字都會帶來厄運,因此他拒絕為所有掛號單序號中有數字4,或序號能被4整除的病人看病。(每張掛號單有一個唯的序號)小李是一名年輕的護士,雖然對吳醫生的怪癖好不能理解,但他是內科最權威的醫生,小李無法阻止他的我行素。為了能讓每個病人都順利的看上病,小李決定只給病人們不含有數字4,并且不被4整除的序號掛單。今天來了n位病人都要掛吳醫生的專家門診(n為正整數,且n<25),請問小李能開給這n位病人的掛號單的序號總和最小是多少?Input輸入為一行,正整數n,n<25。Output輸出為一行,輸出最小的序號總和。12SampleInput10SampleOutput67HINT(1)對樣例的說明:67=1+2+3+5+6+7+9+10+11+13(2)提示:前15個最小的序號是:12356791011131517181921(3)提示:第25小的序號是3513參考代碼14#include<stdio.h>intmain(){intn,i,sum,cnt;//freopen("in.txt","r",stdin);scanf("%d",&n);sum=cnt=0;

//sum用來計算總和,cnt統計已經加了幾個病人的號碼for(i=1;cnt<n;i++){if(i%10!=4&&i%4!=0){//該題降低了難度,最大序號是35,也就是含4的數只有41424sum+=i;

cnt++;}}printf("%d\n",sum);return0;}如果數很大,用循環進行整數拆分2720切餅Description古有善切餅者,名苞丙,苞丁之弟也。把一張大餅置于板上,不許離開,每一刀切下去都是直線。問切n(0≤n≤20)刀最多能分成少塊?例如:如果n=0,則最多能分成1塊;如果n=1,則最多能分成2塊,比第0刀多出1塊;如果n=2,則最多能分成4塊,比第1刀多出2塊;如果n=3,則最多能分成7塊,比第2刀多出3塊;以此類推……Input一個正整數n。Output切n刀最多能分成的塊數。15SampleInput4SampleOutput11參考代碼16#include<stdio.h>intmain(){intn,i,sum;//freopen("in.txt","r",stdin);scanf("%d",&n);sum=1;for(i=1;i<=n;i++){

sum+=i;}printf("%d\n",sum);return0;}研究規律,發現就是計算累加和1098二哥摘蘋果Description二哥種的一棵蘋果樹到了采摘的時候,但是由于二哥身高的限制,有些蘋果太高摘不到。于是二哥借來了一個凳子,踩在上面可以摘到更多的蘋果。二哥想在摘蘋果之前知道自己能摘到多少蘋果,如果實在太少,他寧可坐在樹下等蘋果自己掉下來砸到頭上。Input輸入共有兩行:第1行有3個整數,分別表示二哥的身高、凳子的高度和蘋果的個數n。第2行有n個整數,分別表示每個蘋果的高度。Output輸出一個整數m,表示二哥最多能摘到的蘋果的個數為m。17HINT對于全部數據:高度為1000以下的正整數,蘋果的個數1≤n≤1000。18SampleInput1774010180151152193168255278303211217SampleOutput7參考代碼19#include<stdio.h>intmain(){inth,h2,n,m,i,tmp;

//freopen("in.txt","r",stdin);scanf("%d%d%d",&h,&h2,&n);//分別讀入身高、板凳高、蘋果數m=0;//m用來計數,記得初始化for(i=1;i<=n;i++){

scanf("%d",&tmp);//循環讀入n個蘋果的高度if(h+h2>=tmp)m++;}printf("%d\n",m);return0;}2669勤勞的螞蟻Description有兩只勤勞的螞蟻在準備食物,為了自我激勵一下,它們打算開展比賽,看誰在一段時間內準備的食物多一些。你能幫忙做個裁判嗎,來統計一下哪只螞蟻準備得更加多一些?Input輸入有若干行,每行2個數字,第一個整數表示螞蟻(1表示1號螞蟻,2表示2號螞蟻,不會出現其他數字)。第二個整數表示該螞蟻帶回的食物數量,假設該數據都在合法范圍內。當輸入兩個數字都為0(即00)時表示輸入結束。Output輸出拖回食物多的螞蟻的編號和食物總數量。如果相同,輸出“equal”(輸出不包含雙引號)。輸出后換行。2021SampleInput1229172611201221100SampleOutput22622//解法1#include<stdio.h>intmain(){intno,num,sum1,sum2;//no表示第幾號螞蟻;num每行讀的食物數

//freopen("in.txt","r",stdin);sum1=sum2=0;//sum1表示螞蟻1食物累計數

while(scanf("%d%d",&no,&num)&&!(no==0&&num==0)){if(no==1)sum1+=num;//是螞蟻1則加到sum1elsesum2+=num;}if(sum1==sum2)printf("equal\n");elseif(sum1>sum2)printf("%d%d\n",1,sum1);elseprintf("%d%d\n",2,sum2);return0;}換成:(no||num)行嗎?23//解法2#include<stdio.h>intmain(){intno,num,sum1=0,sum2=0;do{

scanf("%d%d",&no,&num);if(no==0&&num==0)break;

else{if(no==1)sum1+=num;elsesum2+=num;}}while(1);if(sum1==sum2)printf("equal\n");elseif(sum1>sum2)printf("%d%d\n",1,sum1);

elseprintf("%d%d\n",2,sum2);return0;}1260青年歌手大獎賽_評委會打分Description青年歌手大獎賽中,評委會給參賽選手打分。選手得分規則為去掉一個最高分和一個最低分,然后計算平均得分,請編程輸出某選手的得分Input輸入數據有多組,每組占一行,每行的第一個數是n(2<n<100),表示評委的人數,然后是n個評委的打分。Output對于每組輸入數據,輸出選手的得分,

結果保留2位小數,每組輸出占一行。24SampleInput39998974100999897SampleOutput98.0098.5025#include<stdio.h>intmain(){intn,i,score,sum,max,min;//freopen("in.txt","r",stdin);max=0;min=101;//初始化,max先給個足夠小的數,min先給個足夠大的數

while(scanf("%d",&n)!=EOF)//不確定組數,讀到末尾為止{sum=0;//sum累計每行的值,初始化為0,不要寫到while外面了for(i=1;i<=n;i++){scanf("%d",&score);if(max<score)max=score;if(min>score)min=score;sum+=score;}printf("%.2f\n",(sum-max-min)*1.0/(n-2));

}return

溫馨提示

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

評論

0/150

提交評論