北京理工大學2013級C程序設計非信息類答案part2概要_第1頁
北京理工大學2013級C程序設計非信息類答案part2概要_第2頁
北京理工大學2013級C程序設計非信息類答案part2概要_第3頁
北京理工大學2013級C程序設計非信息類答案part2概要_第4頁
北京理工大學2013級C程序設計非信息類答案part2概要_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

北京理工大學2013級C程序設計非信息類答案part2.【小學遞歸】殺雞用牛刀——要用遞歸啊!成績5開啟時間2014年05月10日星期六14:00折扣0.8折扣時間2014年05月24日星期六23:55允許遲交否關閉時間2014年06月1日星期日23:55背景:哈哈!我們終于學了遞歸了,現(xiàn)在大家一定感到非常有意思吧,那個典型的漢諾塔”問題,一個非常短的程序居然可以完成如此復雜的工作,真是神奇啊!來吧,讓我們也動手編寫一個遞歸程序,當然,我們要編寫的不可能太復雜。功能:求整數(shù)n到m區(qū)間的累加和,其中n<=m。輸入:區(qū)間的起始點n區(qū)間的終止點m輸出:累加和要求:使用遞歸算法完成。如此簡單的題目當然要有隱含的測試用例啦,就3個,看看誰能猜出來。測試輸入 期待的輸出 時間限制 內存限制額外進程測試用例1 1. 110。 1. Thesumfrom1to10is55.d 1秒64M0測試用例2 1. 1015。 1. Thesumfrom10to15is75d 1秒64M0intsum(intm,intn){if(m==n)returnm;inti;for(i=n;i>=m;i--)returni+sum(m,i-1);}#include<stdio.h>intmain(){intm,n,s=0;scanf("%d%d”,&m,&n);s=sum(m,n);printf("Thesumfrom%dto%dis%d.\n",m,n,s);return0;}.【中學】求最大公約數(shù)一遞歸成績5開啟時間2014年05月10日星期六14:00折扣0.8折扣時間2014年05月24日星期六23:55允許遲交否關閉時間2014年06月1日星期日23:55請使用遞歸算法計算正整數(shù)n和m的最大公約數(shù)GCD(n,m)。=m當m<=n且nmodm=0GCD(N,M)=GCD(m,n)當n<m時=GCD(m,nmodm)其他輸入:n和m 輸出: n和m的最大公約數(shù)

測試輸入期待的輸出時間限制內存限制額外進程測試用例11.2448。1.24。1秒64M0測試用例21.1315。1.1。1秒64M0#include<stdio.h>intf(intx,inty){ints,t;t=x%y;if(t==0)s=y;elses=f(y,t);returns;}intmain(){intm,n;scanf("%d%d",&m,&n);printf("%d\n",f(m,n));return0;}.【數(shù)列遞歸】求序列之和一一遞歸成績5開啟時間2014年05月10日星期六14:00折扣0.8折扣時間2014年05月24日星期六23:55允許遲交否關閉時間2014年06月1日星期日23:55請使用遞歸算法求序列1+1/2-1/3+1/4-1/5……的前n項之和。輸入:n 輸出:序列的前n項和(精確到小數(shù)點之后第6位)測試輸入期待的輸出時間限制內存限制額外進程測試用例11.1。1.1。1秒64M0測試用例21.2。1.1.500000。1秒64M0測試用例31.3。1.1.166667。1秒64M0#include<stdio.h>floatsum(intn){floats;if(n==1)s=1.0;elseif(n%2==0)s=sum(n-1)+1.0/n;elses=sum(n-1)-1.0/n;returns;}intmain(){intn;floats;scanf("%d",&n);if(n==1)printf("1\n");

else{s=sum(n);printf("%.6f\n",s);}}.【大學】函數(shù)遞歸*2014年05月2014年05月10日星期六14:002014年05月24日星期六23:552014年06月1日星期日23:55折扣 0.8 折扣時間允許遲交 否 關閉時間編寫一個函數(shù),使用遞歸算法求滿足下述定義的整數(shù)序列的第n項。1 當n>=0且n<=4時f(n)= f(n-1)+f(n-3) 當n>4且n為偶數(shù)時f(n-2)+f(n-4) 當n>4且n為奇數(shù)時-1 其他函數(shù)原型如下:intfindf(intn);參數(shù)說明:n項數(shù);返回值是第n項值。例如輸入:10,輸出:8預設代碼前置代碼/*PRESETCODEBEGIN-NEVERTOUCHCODEBELOW*/#include<stdio.h>intmain(){intn,s,findf(int);scanf("%d",&n);s=findf(n);printf("%d\n",s);return0;}/*PRESETCODEEND-NEVERTOUCHCODEABOVE*/測試輸入期待的輸出時間限制內存限制額外進程測試用例11. 10。1. 8。1秒64M0intfindf(intn){if(n>=0&&n<=4)return1;if(n<0)return-1;if(n>4&&n%2==0)returnfindf(n-1)+findf(n-3);if(n>4&&n%2==1)returnfindf(n-2)+findf(n-4);}53.【大學遞歸】求解平方根

成績開啟時間2014年05月10日星期六11:35折扣0.8折扣時間2014年成績開啟時間2014年05月10日星期六11:35折扣0.8折扣時間2014年05月24日星期六11:35允許遲交關閉時間2014年06月1日星期日11:35小明上了大學學習了用求解平方根的迭代公式。Sqrt(x,p,e)=<P,|P2一x|<e其中:p為x的近似平方根,e是結果允許的誤差。 輸入:x,e輸出:p保留小數(shù)點后8位。#include<stdio.h>#include<math.h>floatf(floatx,floatp,floate){if(fabs(p*p-x)<e)returnp;elsereturnf(x,(p+x/p)/2,e);}intmain(){floatp,e,x;scanf("%f%f",&x,&e);p=f(x,x,e);printf("%.8f\n",p);return0;}H12:安全的密碼(選做)2014年05月2014年05月10日星期六14:002014年05月24日星期六23:552014年06月1日星期日23:55折扣 0.8 折扣時間允許遲交 否 關閉時間隨著電子設備的廣泛運用,密碼也漸漸融入每個人的生活。保護好密碼,不僅關系到個人隱私,更關系到個人的財產和安全。一個安全的密碼,最好由大小寫字母、數(shù)字或符號組成。包含越多種類的字符,其安全性就越高。同時密碼還需要有一定的長度,通常至少要由六個以上的字符組成。并不是每個人都喜歡這樣復雜的密碼,很多人在設置密碼的時候,喜歡使用自己的名字或者生日,但這是很大的安全隱患。任務林曉煒正在設計一個網絡交易系統(tǒng),為了保證用戶的密碼安全,他需要一個程序,判斷用戶自己設置的密碼是否安全,如果不安全,則給出提示?,F(xiàn)在他向你求助,請你幫忙設計一個程序來解決這個問題。應當按照以下的規(guī)則來判斷密碼是否安全:如果密碼長度小于6位,則不安全;如果組成密碼的字符只有一類,則不安全;如果組成密碼的字符有兩類,則為中度安全;如果組成密碼的字符有三類或以上,則為安全通常,可以認為數(shù)字、大寫字母、小寫字母和其它符號為四類不同的字符。輸入輸入的第一行是一個整數(shù)N,表明后面有多少組密碼。隨后的N行輸入包括N個密碼,每個密碼的長度均小于20個字符。

輸出針對每一個密碼判斷并輸出它是否安全。對于不安全的密碼輸出"NotSafe",對于中度安全的密碼輸出"MediumSafe”,對于安全的密碼輸出"Safe"輸入樣例輸出樣例測試輸入期待的輸出時間限制內存限制額外進程測試用例11秒64M01.10d1.MediumSafed2.abcDEFd2.NotSafed3.ABCd3.NotSafed4.qwd4.NotSafed5.、d5.NotSafed6.ABCDEFGHIJKLMNOPQRSTd6.NotSafed7.12345678901234567890d7.Safed8.1aBd8.NotSafed9.1Bd9.Safed10.aXd10.Safed11.qwe123%A&ABCd#include<stdio.h>#include<string.h>intmain(void){intn,i,j,x,m,b[4];chara[100];scanf("%d",&n);for(i=1;i<=n;i++){gets(a);if(i==1)gets(a);x=strlen(a);if(x<6){printf("NotSafe\n");continue;}b[0]=0;b[1]=0;b[2]=0;b[3]=0;for(j=0;j<=x-1;j++){if(48<=a[j]&&a[j]<=57)b[0]=1;elseif(65<=a[j]&&a[j]<=91)b[1]=1;elseif(97<=a[j]&&a[j]<=123)b[2]=1;elseb[3]=1;if(a[0]+a[1]+a[2]+a[3]==4)break;}m=b[0]+b[1]+b[2]+b[3];switch(m){case1:printf("NotSafe\n");break;case2:printf("MediumSafe\n");break;

case3:prin"$afe\r)'breakcase4:prin"$afe\nT;}±eturn0;}H13:編碼問題(選作)成績5 開啟時間2014年05月10日星期六成績5 開啟時間2014年05月10日星期六14:00折扣0.8 折扣時間2014年05月24日星期六23:55允許遲交否關閉時間2014年06月1日星期日23:55設有一個整形數(shù)組A[0..N-1;存放的元素為0—N-1(1<"=10)之間的整數(shù),且A[i]于A[j]i另二例如,當"6時,有:A=(4,3,0,5,1,2)。此時,數(shù)組A的編碼定義如下:A[0]編碼為0;A[i編碼為:在A[0],A[1],…,A[i-1]中比A[i的值小的個數(shù)(i=1,2,…,N-1)例如上面數(shù)組A的編碼為:B=(0,0,0,3,1,2)若給出數(shù)組人,則可求出其編碼。同理,若給出數(shù)組A的編碼,可求出A中的原數(shù)據。輸入:推導方向(取值為1或2,如為1,則表示根據數(shù)組求數(shù)組編碼;如為2,則表示根據編碼反求數(shù)組)數(shù)組個數(shù)數(shù)組或數(shù)組編碼元素輸出:數(shù)組編碼、或數(shù)組本身(元素之間以空格分隔)測試輸入期待的輸出時間限制內存限制額外進程測試用例11. 0003121秒64M01. 12. 63. 430512測試用例21. 002245641秒64M01. 12. 83. 10325674測試用例41. 2045131秒64M0TOC\o"1-5"\h\z260 0231 3#include<stdio.h>intmain()intmode,n,i,j,s,a[100],bstat]icntc[100];scanf"%d”,&mode);scanf'%d",&n);foKi=0;i<n;i++)sc"%d",&a[i]);i(mode==1){fo(i=1,b[0]=0;i<n;i++)

for(j=0,b[i]=0;j<i;j++)if(a[i]>a[j])b[i]++;)else{for(i=n-1;i>=0;i--){for(j=0,s=0;s<a[i]+1;j++)if(c[j]==0)s++;b[i]=j-1;c[b[i]]=1;}}for(i=0;i<n-1;i++)printf("%d",b[i]);printf("%d\n",b[n-1]);return0;}.回文字符串——遞歸(請使用遞歸算法實現(xiàn)。)成績5開啟時間2014年05月10日星期六14:00折扣0.8折扣時間2014年05月24日星期六23:55允許遲交否關閉時間2014年06月1日星期日23:00有一種特殊形式的字符串,其正反序相同,被稱為'回文字符串”。輸入:字符串 輸出:Yes或者No說明:如輸出Yes,說明輸入的字符串是一個回文字符串。輸出No,例如LeveL就是一個回文字符串。說明輸入的字符串不是一個回文字符串測試輸入期待的輸出時間限制內存限制額外進程測試用例11. LeveLd1. Yesd1秒64M0測試用例101. d1. Yesd1秒64M0#include<stdio.h>#include<string.h>intf(charx,chary){intp=x==y;returnp;}intmain(){chara[500];inti,j=1,k;fgets(a,500,stdin);k=strlen(a)-1;if(k==0)printf("Yes\n');else{for(i=0;i<=k/2;i++)j*=f(a[i],a[k-1-i]);if(j==1)printf("Yes\n");elseprintf("No\n");}}.子串反向——遞歸成績5開啟時間2014年05月10日星期六14:00折扣0.8折扣時間2014年05月24日星期六23:55允許遲交否關閉時間2014年06月1日星期日23:00請編寫一個遞歸函數(shù)reverse(charstr[],intstart,intend),該函數(shù)的功能是將串str中下標從start開始到end結束的字符顛倒順序。假設start和end都在合理的取值范圍。例如:執(zhí)行前:str[]="0123456";start=1;end=4執(zhí)行后:strr[]="0432156"要求在該函數(shù)中不使用新的數(shù)組,沒有循環(huán)。注意:只需要編寫遞歸函數(shù)reverse,系統(tǒng)中已經設置好了main函數(shù)。預設代碼前置代碼/*PRESETCODEBEGIN-NEVERTOUCHCODEBELOW*/#include<stdio.h>#include<stdlib.h>voidreverse();intmain(){charstr[100];intstart,end;gets(str);scanf("%d%d",&start,&end);reverse(str,start,end);printf("%s\n",str);return0;}/*PRESETCODEEND-NEVERTOUCHCODEABOVE*/測試輸入期待的輸出時間限制內存限制額外進程測試用例11.0123456d1.0432156d1秒64M02.14d測試用例61.0123456d1.0123456d1秒64M02.610d測試用例71.0123456d1.6543210d1秒64M02.010d#include<string.h>voidreverse(charstr[],intstart,intend){chart;if(end>=strlen(str))reverse(str,start,end-1);elseif(start<end){t=str[start];str[start]=str[end];str[end]=t;reverse(str,start+1,end-1);}}.【字符】單詞排序成績5開啟時間2014年成績5開啟時間2014年05月10日星期六14:00折扣 0.8 折扣時間允許遲交 是 關閉時間2014年05月24日星期六23:552014年06月1日星期日23:55輸入5個單詞,將它們按從大到小的順序排列后輸出。輸入:5個單詞輸出:排序后的順序測試輸入期待的輸出時間限制內存限制額外進程測試用例11秒64M01.BASIC。1.Pascal。2.C++。2.Fortran。3.Pascal。3.C++。4.C。4.C。5.Fortran。5.BASIC。#include<stdio.h>#include<string.h>intmain(){charch[5][26],c[26];inti,j,k;for(i=0;i<5;i++)gets(ch[i]);for(i=0;i<4;i++){k=i;for(j=i+1;j<5;j++)if(strcmp(ch[k],ch[j])<0)k=j;if(k!=i){strcpy(c,ch[i]);strcpy(ch[i],ch[k]);strcpy(ch[k],c);}}for(i=0;i<5;i++)puts(ch[i]);}.【日期】車輛限行成績開啟時間2014年05月10日星期六14:00折扣0.8成績開啟時間2014年05月10日星期六14:00折扣0.8折扣時間2014年05月24日星期六23:55允許遲交 否關閉時間2014年06月1日星期日23:552012年4月1日,北京是人民政府根據《中華人民共和國道路交通安全法》和《北京市實施〈中華人民共和國大氣污染防治法〉辦法》有關規(guī)定,自2012年4月11日起,繼續(xù)對機動車實施按車牌尾號工作日高峰時段區(qū)域限行交通管理措施。根據規(guī)定,按車牌尾號限行的機動車車牌尾號分為五組,每13周輪換一次限行日,分別為:(1)自2012年4月9日至2012年7月7日,星期一至星期五限行機動車車牌尾號分別為:3和8、4和9、5和0、1和6、2和7(含臨時號牌,機動車車牌尾號為英文字母的按0號管理,下同);(2)自2012年7月8日至2012年10月6日,星期一至星期五限行機動車車牌尾號分別為:2和7、3和8、4和9、5和0、1和6;

(3)自2012年10月7日至2013年1月5日,星期一至星期五限行機動車車牌尾號分別為:1和6、2和7、3和8、4和9、5和0;(4)自2013年1月6日至2013年4月10日,星期一至星期五限行機動車車牌尾號分別為:5和0、1和6、2和7、3和8、4和9?,F(xiàn)給出2012年4月9日之后的任意日期,如果不考慮國家統(tǒng)一的公假,只考慮日期一個因素,請計算指定日期要限行的車牌尾號。(政府的公告確實有點意思,在時間銜接上和限號安排上公告(/GB/14748/17574443.html)與公告(/gzdt/2013-04/02/content_2367908.htm)之間有重疊,顯然,后面的公告是覆蓋前面的公告的,我們計算的時候,只能是“理論”上的事情,咱嚴格按照從2012年4月9日星期一開始,每13周進行一次輪換計算就可以了。)測試輸入期待的輸出時間限制內存限制額外進程測試用例11.201279d1.2and7.d無限制64M0測試用例21.2012712d1.5and0.d無限制64M0測試用例31.2012714-1.Free.d無限制64M0測試用例51.2013411d1.2and7.d無限制64M0測試用例61.201444d1.5and0.d無限制64M0測試用例91.2014331d1.1and6.d無限制64M0#include<stdio.h>intleap_year(int);intyear_days(int);intdays(int,int,int);intleap_year(intyear){return((year%4==0&&year%100!=0)||year%400==0)?1:0;}intyear_days(intyear){returnleap_year(year)?366:365;}intdays(intyear,intmonth,intday){intmonths[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},i;if(leap_year(year)&&month>2)day++;for(i=1;i<month;i++)day+=months[i];returnday;}intmain(){inta,b,c,i,d=0,m;scanf("%d%d%d",&a,&b,&c);for(i=2012;i<a;i++)d+=year_days(i);d+=days(a,b,c)-days(2012,4,9);m=(d/91)%5;switch(m){case0:switch((d%91)%7){case0:printf("3and8.\n");break;case1:printf("4and9.\n");break;case2:printf("5and0.\n");break;case3:printf("1and6.\n");break;case4:printf("2and7.\n");break;case5:printf("Free.\n");break;case6:printf("Free.\n");break;};break;case1:switch((d%91)%7)

{case0:printf("2and7.\n");break;case1:printf("3and8.\n");break;case2:printf("4and9.\n");break;case3:printf("5and0.\n");break;case4:printf("1and6.\n");break;case5:printf("Free.\n");break;case6:printf("Free.\n");break;};break;case2:switch((d%91)%7){case0:printf("1and6.\n");break;case1:printf("2and7.\n");break;case2:printf("3and8.\n");break;case3:printf("4and9.\n");break;case4:printf("5and0.\n");break;case5:printf("Free.\n");break;case6:printf("Free.\n");break;};break;case3:switch((d%91)%7){case0:printf("5and0.\n");break;case1:printf("1and6.\n");break;case2:printf("2and7.\n");break;case3:printf("3and8.\n");break;case4:printf("4and9.\n");break;case5:printf("Free.\n");break;case6:printf("Free.\n");break;};break;case4:switch((d%91)%7){case0:printf("4and9.\n");break;case1:printf("5and0.\n");break;case2:printf("1and6.\n");break;case3:printf("2and7.\n");break;case4:printf("3and8.\n");break;case5:printf("Free.\n");break;case6:printf("Free.\n");break;};break;}return0;}.縮寫展開2014年05月2014年05月10日星期六14:002014年05月24日星期六23:552014年06月1日星期日23:55折扣 0.8 折扣時間允許遲交 是 關閉時間在保存字符串時,對出現(xiàn)在連續(xù)位置的若干個字符,如這些字符在ASCII表中也是連續(xù)出現(xiàn),則可以將這些字符使用縮寫形式進行保存,以節(jié)省保存空間。例如用A-Z表示ABCD...XYZ,1-5表示12345,c-f表示cdef。輸入:包含縮寫形式的字符串輸出:將縮寫形式進行還原后的字符串說明:只處理大小寫字母和數(shù)字,即對于形如A-9,a-C這樣的縮寫不進行處理

測試輸入測試用例測試輸入測試用例11.0-9。測試1.a-z。測試1. G-R用例測試1. ABDG-K035-9abd-hd用例測試1. 2-9a0-77cbdjd用例測試1.asasdasdasdasdA-H987d用例測試1. A-9A-0c-80-A9-0z-aZ-Ad用例測試1.abcdefghijklmnd用例測試用例 1.asjfdhlkdsa-7812389=-ert=9-1,..;[[]1'=-=4%測試1.A-Z。用例測試1. 1-1。用例時額間外時額間外限內存進期待的輸出制限制程1.0123456789。1秒64M01.abcdefghijklmnopqrstuvwxyz。1秒64M01.GHI。1秒64M01.ABDGHIJK0356789abdefgh。1秒64M01.23456789a012345677cbdj。1秒64M01.asasdasdasdasdABCDEFGH987。1秒64M01.A-9A-0c-80-A9-0z-aZ-A。1秒64M01.abcdefghijklmn。1秒64M01秒64M01.asjfdhlkdsa-7812389=-ert=9-1,..;[[]1'=-=4%1秒64M 01.ABCDEFGHIJKLMNOPQRSTUVWXYZ。1. 1-1。 1秒64M 0#include<string.h>intmain(){chara[200];inti,j;fgets(a,200,stdin);

for(i=0;i<strlen(a);i++)if(a[i]=='-'){if(a[i-1]==a[i+1])printf("%c",a[i]);elseif(a[i-1]>='A'&&a[i+1]<='Z'&&a[i-1]<a[i+1])for(j=a[i-1]+1;j<=a[i+1]-1;j++)printf("%c",j);elseif(a[i-1]>='a'&&a[i+1]<='z'&&a[i-1]<a[i+1])for(j=a[i-1]+1;j<=a[i+1]-1;j++)printf("%c",j);elseif(a[i-1]>='0'&&a[i+1]<='9'&&a〔i-1]<a[i+1])for(j=a[i-1]+1;j<=a[i+1]-1;j++)printf("%c",j);elseprintf("%c",a[i]);}elseprintf("%c",a[i]);}H14:洗牌(選作)2014年05月2014年05月10日星期六14:002014年05月24日星期六23:552014年06月1日星期日23:55折扣 0.8 折扣時間允許遲交 否 關閉時間假設我們有2n張牌,它們以1,2,...,n,n+1,...,2n編號并在開始時保持著這種順序。一次洗牌就是將牌原來的次序變?yōu)閚+1,1,n+2,2,...,2n,n,也就是將原來的前n張牌放到位置2,4,...,2n,并且將余下的n張牌按照他們原來的次序放到奇數(shù)位置1,3,...,2n-1。已經證明對于任何一個自然數(shù)n,這2n張牌經過一定次數(shù)的洗牌就回到原來的次序。但我們不知道對于一個特定的n,需要幾次洗牌才能將牌洗回原來的次序。輸入:牌張數(shù)的一半n,即初始情況下一共有2n張牌,n為int型整數(shù)輸出:將牌洗回原來的次序所需要的洗牌次數(shù)測試輸入期待的輸出時間限制內存限制額外進程測試用例11.10。1.6。1秒64M0測試用例21.20d1.20。1秒64M0測試用例31.3。1.3。1秒64M0測試用例41.30。1.60。1秒64M0測試用例51.1。1.2。1秒64M0測試用例61.10000。1.812。1秒64M0測試用例71.4500。1.2250。1秒64M0#include<stdio.h>intmain(void)

{intn,x,total=1;scanf("%d",&n);x=2;while(x!=1){if(x<=n)x=x*2;elsex=2*(x-n)-1;total=total+1;}printf("%d\n",total);return0;}H15:高精度加減法(選作)成績10開啟時間2014年05月10日星期六14:00折扣0.8折扣時間2014年05月24日星期六23:55允許遲交否關閉時間2014年06月1日星期日23:55背景:計算機所能完成的一個基本功能就是完成數(shù)據的計算,譬如加法、減法等等。但是在任何一種計算機上,計算中能夠使用的數(shù)字都是有一定范圍的,超過了范圍,就沒法得到精確的結果。你現(xiàn)在接受了一個任務,要編寫一個高精度計算器的核心部分。所謂高精度計算器,就是可以計算很大很大的數(shù)據的計算器。輸入:輸入的第一行是一個正整數(shù),表示下面有幾組數(shù)據需要計算。之后的每一行是兩個十進制的正整數(shù)和一個運算符,每個整數(shù)可以由最多500個數(shù)字組成。運算符可以是加號或者減號。輸出:對應著輸入的每一行數(shù)據,輸出計算的結果,每個結果占一行。測試輸入期待的輸出測試用例1測試輸入期待的輸出測試用例1時間限內存限額外進制制程1秒64M01. 23680037d1. 23680037d2. 9381691d1. 2d2. 213914+23466123d3. 32862934-23481243d測試用例 1秒64M 021.3d 1.1719478911005466354d2.483291674192731231+1236187236812735123d 2.123100742776022691142d3.123129678463287562378-28935687264871236d 3.1000000000d4.999999999+1d

測試輸入期待的輸出時間限制內存限制額外進程測試用例1秒64M031. 11d1. 113578d2. 56789+56789d2. 90000d3. 45555+44445d3. 12346d4. 1+12345d4. 12346d5. 12345+1d5. 5d6. 98765-98760d6. 2469d7. 12345-9876d7. 0d8. 12345-12345d8. -1d9. 12345-12346d9. -54320d10. 1-54321d10. 0d11. 0-0d11. 0d12. 0+0d#include<stdio.h>#include<string.h>voidmain(){charz,sign,a[1010];intn,i,j,f,x,b[1010],c[1010];voidadd(intb[1010],intc[1010],intf);voidsub(intb[1010],intc[1010],intf);scanf("%d%c",&n,&z);for(;n>0;n--,printf("\n")){gets(a);x=strlen(a);for(i=0;i<1010;i++)b[i]=c[i]=0;for(i=x-1,j=0;'0'<=a[i]&&a[i]<='9';i--,j++)c[j]=a[i]-'0';f=j;sign=a[i];for(i--,j=0;i>=0;i--,j++)b[j]=a[i]-'0';if(f<j)f=j;if(sign=='+')add(b,c,f);elsesub(b,c,f);}}voidadd(intb[1010],intc[1010],intf){inti,r,d[1010];for(i=0,r=0;i<f;i++){d[i]=(b[i]+c[i]+r)%10;r=(b[i]+c[i]+r)/10;}if(r==1)printf("1");for(i--;i>=0;i--)printf("%d",d[i]);}voidsub(intb[1010],intc[1010],intf){inti,r,flag,d[1010];for(i=f-1,flag=1;i>=0;i--){if(b[i]>c[i]){flag=1;break;}elseif(b[i]<c[i]){flag=-1;break;}}if(flag==1){for(i=0,r=0;i<f;i++){d[i]=b[i]-c[i]+r;if(d[i]<0){d[i]=d[i]+10;r=-1;}

elser=0;}}if(flag==-1){printf("-");for(i=0,r=0;i<f;i++){d[i]=c[i]-b[i]+r;if(d[i]<0){d[i]=d[i]+10;r=-1;}elser=0;}}for(i--;d[i]==0&&i>0;i--);for(;i>=0;i--)printf("%d",d[i]);}H16:拱豬計分(選作)成績開啟時間2014年05月10成績開啟時間2014年05月10日星期六14:35折扣0.8折扣時間2014年05月24日星期六23:55允許遲交 是關閉時間 2014年06月1日星期日23:55背景:拱豬是一種很有趣的撲克牌游戲。即使你不知道它的玩法,你也可以由它的計分方式來了解它的趣味性。假設在此我們僅考慮四個人的拱豬牌局,本題要求你根據下面的計分規(guī)則,在牌局結束時計算四位玩家所得分數(shù)。我們分別以S、H、D及C來代表黑桃,紅心,方塊及梅花,并以數(shù)字1至13來代表A、2、…、Q、K等牌點,例如:H1為紅心A,S13為黑桃K。牌局結束時,由各玩家持有的有關計分的牌(計分牌)僅有S12(豬),所有紅心牌,D11(羊)及C10(加倍)等16張牌。其它牌均棄置不計。若未持有這16張牌之任一張則以得零分計算。若持有C10的玩家只有該張牌而沒有任何其它牌則得+50分,若除了C10還有其它計分牌,則將其它計分牌所得分數(shù)加倍計算。若紅心牌不在同一家,則H1至H13等13張牌均以負分計,其數(shù)值為-50,-2,-3,-4,-5,-6,-7,-8,-9,-10,-20,-30,-40。而且S12與D11分別以-100及+100分計算。若紅心牌H1至H13均在同一家,有下列情形:所有紅心牌以+200分計算。若S12、D11皆在吃下所有紅心牌之一家,則此玩家得+500分。而C10還是以前面所述原則計算之。例一:若各玩家持有計分牌如下:(每列代表一玩家所持有之牌)S12H3H5H13D11H8H9C10H1H2H4H6H7H10H11H12則各家之得分依序為:-148、+83、-138及-60。例二:若各玩家持有計分牌如下:(第四家未持有任何計分牌)H1H2H3H4H5H6H7H8H9H10H11H12H13S12C10D11則各家之得分依序為:+200、-200、+100及0。

例三:若有一玩家持有所有16張計分牌,則得+1000分。其余三家均得零分。輸入:每個輸入文件由多組測試數(shù)據構成,每組測試數(shù)據有四行,每一行第一個數(shù)為該玩家所持有計分牌總數(shù),而后列出其所持有之所有計分牌,牌數(shù)與各計分牌均以一個以上的空格分開。相鄰兩組測試數(shù)據之間不會有空白行,讀到四家持牌數(shù)都為0表示文件結束。0除外),相鄰兩個整0除外),相鄰兩個整數(shù)之間以一個空格分開,符號和數(shù)字間不可以有空格。每組輸出間不需要有空白行。測試輸入期待的輸出時間

限制內存限制額外進程64M4S12H3H5H13。3測試輸入期待的輸出時間

限制內存限制額外進程64M4S12H3H5H13。3D11H8H9。6C10H1H2H4H6H7。3H10H11H12。13H1H2H3H4H5H6H7H8H9H10H11H12H13。2S12C10。1D11。0。0。0。0。0。1.2.-148+83-138-60。+200-200+1000。#include<stdio.h>intmyinput(intcard[],intnumber[]){inti,n;chars[5];for(i=0;i<4;i++){scanf("%d",&n);number[i]=n;while(n--){scanf("%s",s);switch(s[0]){case'S':card[13]=i;break;case'D':card[14]=i;break;case'C':card[15]=i;break;case'H':s⑵=='\0'?(card[s[1]-'1']=i):(card[s[2]-T+10]=i);}}}returnnumber[0]+number[1]+number[2]+number[3];}intmain(){intvalue[15]={-50,-2,-3,-4,-5,-6,-7,-8,-9,-10,-20,-30,-40,-100,100},card[16],score[4]={0,0,0,0},number[4],i,s,input();while(myinput(card,number)){for(i=0,s=0;i<13;i++)s+=card[i];if(s%13){for(i=0;i<15;i++)score[card[i]]+=value[i];}else{if(card[0]==card[13]&&card[13]==card[14])score[card[0]]+=500;else

{score[card[0]]+=200;score[card[14]]+=value[14];score[card[13]]+=value[13];}}29.score[card[15]]+=number[card[15]]==1?50:score[card[15]];for(i=0;i<4;i++)printf("%s%d%s”,score[i]>0?”+”:"”,score[i],i==3?”\n":"");for(i=0;i<4;i++)score[i]=0;}成績5開啟時間折扣0.8折扣時間允許遲交否關閉時間59.【大學】恭喜發(fā)財利是竇來return59.【大學】恭喜發(fā)財利是竇來2014年05月26日星期一14:002014年06月8日星期日23:552014年06月15日星期日23:55在中國,過春節(jié)時人們有給孩子壓歲錢(粵語稱為利是)的習俗。最早的壓歲錢出現(xiàn)于漢代,又叫壓勝錢,并不在市面上流通,而是鑄成錢幣形式的玩賞物,有避邪的功能。錢幣正面一般鑄有“萬歲千秋”、“去殃除兇”等吉祥話和龍鳳、龜蛇、雙魚等吉祥圖案。據說嘉興府有一戶姓管的人家,夫妻老年得子,十分珍愛。在年三十晚上,為防止'祟”來侵擾一直逗孩子玩,小孩用紅紙包了八枚銅錢,包了又拆,拆了又包,睡下以后,包著的八枚銅錢就放在枕邊。半夜里,一陣陰風吹過,黑矮的小人正要用他的白手摸孩子的頭,突然孩子枕邊迸出一道金光,祟尖叫著逃跑了。于是這件事傳揚開來,大家紛紛效仿,在大年夜用紅紙包上錢給孩子,祟就不敢再來侵擾了。因而人們把這種錢叫“壓祟錢”,“祟”與“歲”發(fā)音相同,日久天長,就被稱為“壓歲錢”了?,F(xiàn)在有N個人,他們都有小孩,春節(jié)來了,他們要發(fā)壓歲錢給朋友的小孩,而他們自己的小孩也會收到壓歲錢。為了簡單,他們在發(fā)壓歲錢的時候,使用以下的計算方法,譬如某甲有100塊,它要給另外三個人的小孩發(fā)壓歲錢,則每個小孩會分到100/3=33塊,剩余的1塊就不發(fā)了。給你這N個人的信息,以及他們把壓歲錢發(fā)給了誰的小孩,請你計算他們每個人的小孩收到的壓歲錢和他們發(fā)出去的壓歲錢的差額是多少。輸入第1行: 一個整數(shù)N(2<=N<=10)第2..N+1行: 每行是一個人名,每個名字不超過14個字符第N+2..結束: N組按照以下規(guī)則組織的數(shù)據:組中的第一行為送出壓歲錢的人名。第二行包括兩個數(shù)字,第一個是該人有多少錢(0?2000),第二個是它要把錢發(fā)給幾個人的小孩,用NGi表示(0<NGi<N-1).如果NGi為非零,則下面的NGi行會列出接受壓歲錢的人的名字。輸入樣例

輸出格式輸出為N行,每行上是一個人名與它收到和送出的壓歲錢之差額,這兩項之間有一個空格。這N行的順序應該和輸入中第2?N+1行的順序相同。輸出樣例測試輸入 期待的輸出測試用例2輸出樣例測試輸入 期待的輸出測試用例2時間限制內存限制額外進程1秒64M01.5d1.dave302d2.daved2.laura66d3.laurad3.owen-359d4.owend4.vick141d5.vickd5.amr-150damrddaved

8.2003d9.10.lauradowend11.12.vickdowend13.14.5001ddaved15.16.amrd1502d17.18.vickdowend19.20.laurad02d21.amrd22.23.vickdvickd24.00d測試輸入期待的輸出時間限制內存限制額外進程測試輸入期待的輸出時間限制內存限制額外進程#include<stdio.h>#include<string.h>#include<stdlib.h>structdate{charname[15];intmoney;intget;intnum;intres;};intmain(){structdatepeople[10];for(intx=0;x<10;x++){people[x].get=0;}intn,itemp,ktemp,ntemp,moneytemp;chartemp[20];scanf("%d",&n);for(inti=0;i<n;i++){scanf("%s",people[i].name);}for(inta=0;a<n;a++){scanf("%s",temp);for(itemp=0;strcmp(temp,people[itemp].name);itemp++){;}scanf("%d%d”,&people[itemp].money,&ntemp);if(ntemp!=0)moneytemp=people[itemp].money/ntemp;people[itemp].num=ntemp;while(ntemp--){scanf("%s",temp);for(ktemp=0;strcmp(temp,people[ktemp].name);ktemp++){;}people[ktemp].get+=moneytemp;}}for(inta=0;a<n;a++){if(people[a].num){people[a].res=people[a].get-people[a].money+people[a].money%people[a].num;}else{people[a].res=people[a].get;}}for(inta=0;a<n;a++)

{printf("%s%d\n",people[a].name,people[a].res);}}.【中學】求特定三位數(shù)成績5開啟時間2014年05月26日星期一14:00折扣0.8折扣時間2014年06月8日星期日23:55允許遲交否關閉時間2014年06月15日星期日23:55將數(shù)字1?9分成3個三位數(shù),要求第2個三位數(shù)是第1個三位數(shù)的兩倍,第3個三位數(shù)是第1個的三倍。即假定為第1個三位數(shù),則第2個恰好為2*m,第3個為3*m,請輸出這幾個三位數(shù)。輸入:第一個三位數(shù)的數(shù)字輸出:滿足題目條件的所有三位數(shù)測試輸入 期待的輸出時間限制內存限制 額外進程測試輸入 期待的輸出時間限制內存限制 額外進程測試用例11.2d1.測試用例11.2d1.2.219,438,657。273,546,819d64M 0測試用例21秒 64M 測試用例21. 9。 1, 0,0,0。#include<stdio.h>#include<stdlib.h>intmain(){intp[9],a,m,n,k,r,t,s=0;scanf("%d",&p[0]);for(p[1]=1;p[1]<10;p[1]++){for(p[2]=1;p[2]<10;p[2]++){k=1;m=p[0]*100+p[1]*10+p[2];n=m*2;r=m*3;if(r<1000){t=n;p[5]=t%10;t/=10;p[4]=t%10;p[3]=t/10;t=r;p[8]=t%10;t/=10;p[7]=t%10;p[6]=t/10;for(a=0;a<9&&k==1;a++)for(t=a+1;t<9&&k==1;t++)if(p[a]==p[t])k=0;for(t=0;t<9;++t){if(p[t]==0)k=0;}}elsek=0;if(k==1){s=1;printf("%d,%d,%d\n",m,n,r);}}}if(s==0)printf("0,0,0\n");return0;}.【字符】壓縮文本文件成績5開啟時間2014年05月26成績5開啟時間2014年05月26日星期一14:00折扣0.8折扣時間2014年06月8日星期日23:55允許遲交關閉時間2014允許遲交關閉時間2014年06月15日星期日23:55背景:壓縮是一種有效的減小數(shù)據量的方法,目前已經被廣泛應用于各種類型的信息系統(tǒng)之中。一種壓縮文本文件(假設文件中不包含數(shù)字)的方法如下:.原始文本文件中的非字母的字符,直接拷貝到壓縮文件中;.原始文件中的詞(全部由字母組成),如果是第一次出現(xiàn),則將該詞加入到一個詞的列表中,并拷貝到壓縮文件中;否則該詞不拷貝到壓縮文件中,而是將該詞在詞的列表中的位置拷貝到壓縮文件中。.詞的列表的起始位置為1。詞的定義為文本中由大小寫字母組成的最大序列。大寫字母和小寫字母認為是不同的字母,即abc和Abc是不同的詞。詞的例子如下:x-ray包括兩個詞x和ray;mary's包括兩個詞mary和s;ac-Dec包括三個詞a和c和Dec編寫一個程序,輸入為一組字符串,輸出為壓縮后的文本。輸入:輸入為一段文本,可以假設輸入中不會出現(xiàn)數(shù)字、每行的長度不會超過80個字符,并且輸入文本的大小不會超過10M。輸出:壓縮后的文本。額外時 進間 程限內存限②測試輸入 期待的輸出 制制測試測試用 1. Please,pleasedoit--itwouldpleaseMaryve1.例 ry,d2. verymuch.。 2.3. 。 3.Thanks。 4.1 1024K 0秒BPlease,pleasedoit--4would2Maryvery,。7much.。。Thanks。#include<stdio.h>#include<string.h>intmain(){chars[10000][80];intk=1,l=1,r=1;for(;;r++){k=1;chara[90]={0};charb[90][100],c[100];inti=1;scanf("%c",&a[0]);if(a[0]==0)break;doscanf("%c",&a[i]);while(a[i++]!='\n');intj=0;intn=0;if(a[0]!=0){for(j=0;a[j]!=0;j++){if((a[j]>='a'&&a[j]<='z')||(a[j]>='A'&&a[j]<='Z')){b[k][n]=a[j];n++;}else{c[k]=a[j];b[k][n]=0;k++;n=0;}}}chard[100];for(n=1;n<k;n++){j=1;for(;j<l;j++)if(strcmp(s[j],b[n])==0){sprintf(d,"%d",j);strcpy(b[n],d);break;}if(j==l&&b[n][0]!=0){strcpy(s[l],b[n]);l++;}printf("%s",b[n]);printf("%c",c[n]);}}}62.【大學】求表示方法

成績開啟時間2014年05月26日星期一14:00折扣0.8折扣時間2014年06月8日星期日23:55允許遲交關閉時間2014年06月15日星期日23:55設m、n均為大于0的整數(shù)成績開啟時間2014年05月26日星期一14:00折扣0.8折扣時間2014年06月8日星期日23:55允許遲交關閉時間2014年06月15日星期日23:55設m、n均為大于0的整數(shù)m可表示為一些不超過n的整數(shù)之和,f(m,n)為這種表示方式的數(shù)目。例如,f(5,3)=5,有5種表示方法:3+23+1+1,2+2+1,2+1+1+1,1+1+1+1+1o請編寫程序計算f(m,n)的值。輸入:mn輸出:f(m,n)的值測試輸入期待的輸出時間限制內存限制額外進程測試用例164M1.53,1.5,測試用例264M1.6441.intf(inty,intx){if(y==1)return1;if(x==1)return1;if(y<x)returnf(y,y);if(x==y)return1+f(y,x-1);returnf(y,x-1)+f(y-x,x);}intmain(){intm,n;scanf("%d%d",&m,&n);printf("%d\n",f(m,n));}成績開啟時間2014年05月26日星期一14:00折扣0.8折扣時間2014年成績開啟時間2014年05月26日星期一14:00折扣0.8折扣時間2014年06月8日星期日23:55允許遲交關閉時間2014年06月15日星期日23:55傳統(tǒng)的算術表達式是由操作數(shù)(又叫運算對象或運算量)和運算符以及改變運算次序的圓括號連接而成的式子。其運算規(guī)則如下:(1)先計算括號內,后計算括號外;(2)在無括號或同層括號內,先進行乘除運算,后進行加減運算,即乘除運算的優(yōu)先級高于加減運算的優(yōu)先級;(3)同一優(yōu)先級運算,從左向右依次進行。在這種表達式的計算過程中,既要考慮括號的作用,又要考慮運算符的優(yōu)先級,還要考慮運算符出現(xiàn)的先后次序。波蘭科學家盧卡謝維奇(Lukasiewicz)提出了算術表達式的另一種表示,即后綴表示,又稱逆波蘭式,其定義是把運算符放在兩個運算對象的后面。在后綴表達式中,不存在括號,也不存在優(yōu)先級的差別,計算過程完全按照運算符出現(xiàn)的先后次序進行,整個計算過程僅需一遍掃描便可完成。例如:3/5+6的逆波蘭表達式為35/6+2*(3+4)的逆波蘭表達式為234+*輸入:一個只包含加、減、乘、除和數(shù)字的逆波蘭表達式輸出:該表達式的值說明:題目中涉及的數(shù)據全部為整型測試輸入期待的輸出時間限制內存限制額外進程測試用例1 1. 23+5*,1. 25,1秒64M0測試用例2 1. 16943+*-,1. -47,1秒64M0#include<stdio.h>#include<stdlib.h>intoperation(charch,int*k){switch(ch){case'+':return(*k+*(k+1));case'-':return(*k-*(k+1));case'*':return(*k**(k+1));case'/':return(*k/*(k+1));default:return0;}}intmain(){intoperation(char,int*);staticintnumber[50];inti=0;charsign[50],*p=sign;gets(sign);while(*p){if(*p<='9'&&*p>='0')number[i++]=atoi(p);else{number[i-2]=operation(*p,&number[i-2]);i--;}for(p++;!(*p!=''&&*(p-1)=='')&&*p;p++);}printf("%d\n",number[0]);return0;}63.【大學】撞球成績5開啟時間2014年05月26日星期一14:00折扣0.8折扣時間2014年06月8日星期日23:55允許遲交否關閉時間2014年06月15日星期日23:55一天,丁俊暉編一整天的程序,突然覺得累了,于是便決定在房間內四處走走。他的房間是矩形的,他從電腦開始隨便選了一個角度開始行走。由于職業(yè)習慣,丁俊暉走路始終是直線,而且碰到墻以后會反彈,入射角度與出射角度完全相同。丁俊暉會一直行走,直到靈感再次迸發(fā)。假設他的行走速度是勻速的,現(xiàn)在,丁俊暉的母親想知道他一共休息了多長時間以便提醒他繼續(xù)工作。丁俊暉想考考他的母親,于是他記錄了自己碰到墻壁的序列并且告訴了她,你有沒有辦法能夠幫助她計算出小丁所走的路程?輸入輸入包括多個測試用例,每個測試用例如下:第一行包含兩個數(shù)字w,l(0<w,1<=1000),分別代表房間的寬度和長度;第二行包括兩個數(shù)字x0,y0,代表電腦的位置坐標(x0,y0);第三行包含兩個數(shù)字x1,y1,代表丁俊暉的位置坐標(x1,y1);最后一行是一個包含'F','B','L','R'四種字符的字符串,分別代表墻在前面、后面、左邊或是右邊,字符串的長度小于等于1000;我們約定,左上角的坐標為0,0,所有的坐標都是浮點型數(shù)字。輸出一個浮點型數(shù)字,代表總路程,結果精確到小數(shù)點后4位。測試輸入 期待的輸出 時間限制 內存限制 額外進程測試用 1. 63.7809 1秒 64M 0

例.1020a911a19aFLRLRBa測試用1. 67,9412a 1秒 64M 0例21.1122a2.812a3.210a4.FLRLRBa測試用1. 10,0499a 1秒 64M 0例31.78a2.24a3.25a4.Ra測試用1. 319,4761a 1秒 64M 0例71.4387a2.1215a3.3537a4.FRLRLRLBa測試用1. 2120.6134a 1秒 64M 0例81.33a2.22a3.23a4.250個FLBRa測試輸入期待的輸出時間限制內存限制 額外進程測試輸入期待的輸出時間限制內存限制 額外進程#include<stdio.h>#include<string.h>#include<math.h>intmain(){chara[2000];intw,l,x0,y0,x1,y1,i,k,r=0,f=0,n=0,m=0;doublec,d,s;6.scanf("%d%d",&w,&l);scanf("%d%d",&x0,&y0);scanf("%d%d",&x1,&y1);scanf("%s",a);k=strlen(a);for(i=0;i<k;i++){if(a[i]=='R'||a[i]=='L')m++;if(a[i]=='F'||a[i]=='B')n++;}for(i=0;i<k;i++){if(a[i]=='R')r=1;

if(a[i]=='L')r=2;if(r>0)break;}for(i=0;i<k;i++){if(a[i]=='F')f=1;if(a[i]=='B')f=2;if(f>0)break;}if(m%2==0)d=m*w+(x0-x1)*pow(-1,r);elsed=m*w+w-x0-x1;if(n%2==0)c=n*l+(-y0+y1)*pow(-1,f);elsec=n*l-l+y0+y1;s=sqrt(pow(d,2)+pow(c,2));printf("%.4f\n",s);}#include<stdio.h>#include<string.h>#include<math.h>intmain(){chara[2000];intw,l,x0,y0,x1,y1,i;doubles;scanf("%d%d%d%d%d%d",&w,&l,&x0,&y0,&x1,&y1);scanf('%s",a);for(i=0;i<strlen(a);i++){if(a[i]=='F')y0=-y0;if(a[i]=='B')y0=2*l-y0;if(a[i]=='L')x0=-x0;if(a[i]=='R')x0=2*w-x0;}s=sqrt((x1-x0)*(x1-x0)+(y1-y0)*(y1-y0));printf("%.4f\n",s);return0;}64.拆分整數(shù)*成績開啟時間2014年05月26日星期一14:00成績開啟時間2014年05月26日星期一14:00折扣0.8折扣時間2014年06月8日星期日23:55允許遲交 否關閉時間2014年06月15日星期日23:55一個正整數(shù)可以拆分成若干個正整數(shù)的和。例如正整數(shù)4,可以有4種拆分方法:4=3+1、4=2+2、4=2+1+1,4=1+1+1+1用n表示待拆分的正整數(shù),用m表示從n中拆出的最大正整數(shù),則計算對正整數(shù)n共有多少種拆分方法可以下列遞歸公式:0 (當n<1或m<1時)(當n=1或m=1時)count(n,m)=count(n,n) (當n<m時)count(n,m-1)+1 (當n=m時)count(n-m,m)+count(n,m-1)(其他情況)編寫遞歸函數(shù),計算一個正整數(shù)有多少種拆分方法。函數(shù)原型如下:intcount(intn,intm)參數(shù)說明:n待拆分的正整數(shù),m表示從n中拆出的最大正整數(shù);函數(shù)返回值是拆分方法數(shù)。例如輸入:4,輸出:4注意:僅提交自編的count函數(shù),不提交main函數(shù)。預設代碼

a3_3.c/*PRESETCODEBEGIN-NEVERTOUCHCODEBELOW*/#include<stdio.h>intmain()(intn,count();scanf("%d",&n);printf("%d\n",count(n,n-1));return0;)/*請編寫遞歸函數(shù)intcount(intn,intm){}*//*PRESETCODEEND-NEVERTOUCHCODEABOVE*/測試輸入 期待的輸出 時間限制內存限制 額外進程測試用例1 1. 4, 1. 4, 1秒 64M 0intcount(intn,intm){if(n<1||m<1)return0;if(n==1||m==1)return1;if(n<m)returncount(n,n);if(n==m)returncount(n,m-1)+1;elsereturncount(n-m,m)+count(n,m-1);}65.【字符】計算子字符串個數(shù)2014年05月2014年05月26日星期一14:002014年06月8日星期日23:552014年06月15日星期日23:55折扣 0.8 折扣時間允許遲交 否 關閉時間字符串匹配問題:輸入一個字符串,計算其中包含的連續(xù)給定的子字符串的個數(shù)。例如輸入字符串“EFABCABCABCDABCDD",給定子字符串“ABC”,輸出是3。函數(shù)原型:intcountsub(char*str,char*subs)。參數(shù)說明:str保存輸入的字符串的首地址,subs保存需要統(tǒng)計的子字符串的首地址。返回值:包含的連續(xù)子字符串的個數(shù)。預設代碼countsub_H20.c/*PRESETCODEBEGIN-NEVERTOUCHCODEBELOW*/#include<stdio.h>intcountsub(char*str,char*ss);main()

(chars1[1000] ={0}, s2[100]= {0};gets(sl);gets(s2);printf("%d\n", countsub( s1,s2 ));}/*PRESETCODEEND-NEVERTOUCHCODEABOVE*/測試輸入期待的輸出時間限制內存限制測試用例11, 3, 1秒 64M測試輸入期待的輸出時間限制內存限制測試用例11, 3, 1秒 64M測試用例2EFABCABCABCDABCDD,ABC,1, 0, 1秒 64M額外進程00abcdefghi,xyz,intabcdefghi,xyz,intcountsub(char*str,char*ss){inti,j,q,k=0,r,max=0,flag=1,h;for(r=0;str[r]!='\0';r++);for(i=0;i<=r;){for(j=i,q=0;j<=r;j++){if(ss[q]=='\0'){h=q;k++;flag=0;break;}if(str[j]==ss[q])q++;else{if(k>max)max=k;k=0;flag=1;break;}}if(flag)i++;elsei=i+h;}returnmax;}整數(shù)分解*成績開啟時間2014年05月26日星期一14:00折扣0.8折扣時間2014年06月8日星期日成績開啟時間2014年05月26日星期一14:00折扣0.8折扣時間2014年06月8日星期日23:55允許遲交關閉時間2014年06月15日星期日23:55例如:1998+1999+2000+2001+2002=10000,是個累加和等于N的連續(xù)的自然數(shù)段。輸出每個累加和等于N的連續(xù)的自然數(shù)段的第一個數(shù)和最后一個數(shù),兩數(shù)之間用符號?隔開,的第一個數(shù)從小到大升序排列。如果沒有符合條件的自然數(shù)段,則輸出None。每段一行,所有行按每行輸入:N(例如:N=10000)輸出:18?143297?329388?4131998?2003測試輸入期待的輸出時間限制內存限制額外進程388?4131998?2003測試輸入期待的輸出時間限制內存限制額外進程測試用例11.10000,無限制64M18?142,297?328,388?412,1998?2002,#include<stdio.h>intmain(){intn,i,j,m,a=0;scanf("%d",&n);4.for(i=1;i<=n/2+1;i++){m=i;for(j=i+1;j<=n/2+1;j++){m+=j;if(m>=n){if(m==n){print

溫馨提示

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

評論

0/150

提交評論