C语言考试平台_第1页
C语言考试平台_第2页
C语言考试平台_第3页
C语言考试平台_第4页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

A+BProblemTimeLimit:1OOOMSMemoryLimit:65536K

TotalSubmit:2153Accepted:1096DescriptionCalculatea+bInputTwointegera,b(0<=a,b<=10)OutputOutputa+bSampleInput12SampleOutput3HintHereisasamplesolutionforproblemusingC/GCC:#includeintmain()inta,b;scanf(n%d%d”,&a,&b);printfC%d\n",a+b);return0;#include<stdio.h>intmain()(inta,b;scanf("%d%d”,&a,&b);printf("%d\n",a+b);return0;)第三届程序设计大赛让气球飞起来TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:325Accepted:103Description比赛又一次开始了,看着气球漂浮在周边是多么兴奋的事情啊,但是告诉你ー个秘密,裁判最喜欢做的事情就是猜ー个问题,即数目最多的气球颜色。当比赛结束时,他们会数每种颜色的气球数目并公布结果。今年,他们决定将数气球的事情交给你做。Input测试数据第一行是ー个N(0<N<=100),表示放飞的气球总数;紧接着的N行中每行表示ー种气球颜色。每种气球颜色是由不多于15个小写字母组成。Output对于每组测试数据,对应一行输出颜色最多的气球颜色,测试数据能保证对应的结果唯一。SampleInput5greenredblueredredSampleOutputredSource#include<stdio.h>#include<string.h>intmain(){inta[100]={0};charstr[100][16];intx,i,j;scanf("%d”,&x);for(i=0;i<x;i++){scanf("%s”,&str皿。]);)for(i=0;i<x;i++)(for(j=i;j<x;j++)if(strcmp(&str[i][O]z&str[j][O])==O)++a[i];)for(i=l;i<x;i++){if(a[O]<a[i])strcpy(&str⑼[0],[0]);a[O]=a[i];)printf("%s",&str[O][O]);return0;3_6搬成问题TimeLimit:1000MSMemoryLimit:65536KTotalSubmit:2842Accepted:823Description某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬1块,有多少种搬法用45人正好搬45块砖?Input无Outputmen=women=child=SampleInput无SampleOutputmen=0women=15child=30men=3women=10child=32men=6women=5child=34men=9women=0child=36Source#include<stdio.h>main()(floatc,y,m,w;for(m=0;m<=45;m++){for(w=0;w<=45;w++){c=45-m-w;y=m*3.0+w*2.0+c/2.0;if(y==45)printf("men=%.Ofwomen=%.0fchild二%.Of\n,m,w,c);})return0;}四3_3统计不同类型字符TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:1954Accepted:397Description输入一行字符,分别统计其中英文字母、空格、数字和其它字符的个数。Input键盘上的任意字符串,以;结束。character,blank=,digit=,other=;SampleInputcase1:printf(Mverygood!");SampleOutputcharacter18,blank=2,digit=1,other=6;Source#include<stdio.h>#include<string.h>main()(charstr[100];intc=0/b=0/d=0/o=0;inti,sumニ〇;for(i=0;;i++){scanf("%c"z&str[i]);++sum;if(str[i]==';')break;}for(i=0;i<sum-l;i++)(if(str[i]>='a'&&str[i]<='z*11(str[i]<='Z'&&str[i])>='A1)++c;elseif(str[i]=='')++b;elself(str[i]<='9,&&str[i]>='O')++d;else++o;printf("character=%d/blank=%d/digit=%d/other=%d;"/c/b/d,o);return0;五3_5求正整数的位数及各位数字和TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:2612Accepted:585Description输入个正整数num,求它的位数以及各位数字之和。Input正整数num(0<num<100000)Output位数n;各位数字之和sum=SampleInput123SampleOutputn=3;sum=6Source#include<stdio.h>main()inta[50]={0};intx,sum=O/n=O;inti/themzp=10;scanf(”%cT,&x);them=x;for(i=0;;i++)(them/=10;++n;if(them==O)break;}for(i=l;i<n-l;i++)p*=10;for(i=l;i<=n;i++)(them=x/p;a[i]=them;a[i]*=10;P/=1O;sum+=them-a[i-l];)printf("n=%d;sum=%d"/n/sum);return0;}ハ3_4计算无限序列TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:1025Accepted:530Description输入ー个正整数n,计算1-1/4+1/7-1/10+1ハ3-1/16+...的前n项之和,输出时保留3位小数。Input正整数n(l<n<20)Output结果保留3位小数。SampleInput3SampleOutput0.893Source#include<stdio.h>#include<math.h>main()(floatx,y=l,p=l,sum=0;intn,i=l;scanf("%d",&n);while(i<=n)(sum+=p;y=y+3;if(i%2==0)p=i/y;elseP=-i/y;++i;}printf(”%.3f',sum);return0;七3_1分段程序求值TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:1617Accepted:662Description输入X,计算并输出下列分段函数セx)的值。■ 2 1,,ヽ(ス+D+2x+—x<0/x x>0Input实数x(-20<n<20)Output保留2位小数。SampleInput-iSampleOutput-3.00Source#include<stdio.h>#include<math.h>main()floatx,y;scanf("%f",&x);if(x<0)y=(x+l)*(x+l)+2*x+l/x;elsey=sqrt(x);printf(”%.2f”,y);return0;A3_2二次方程求根TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:2476Accepted:554Description输入参数a、b、c»求一元二次方程ax2+bx+c=0的根。Input三个实数a、b、c,并确保八K)。Output方程两个实根,保留两位小数。SampleInput12-8SampleOutputx1=2.00x2=-4.00Source#include<stdio.h>#include<math.h>main()(floata,b,c;floatxl,x2;scanf("%f%f%f",&a,&b/&c);xl=(-b+sqrt(b*b-4*a*c))/(2*a);x2=(-b-sqrt(b*b-4*a*c))/(2*a);printf("xl=%.2fx2=%.2f"/xl/x2);return0;九Exp3_l温度转换TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:1263Accepted:542Description输入ー个华氏温度f,要求输出摄氏温度c。公式为c=5/9(f-32)。Input华氏温度Output摄氏温度,保留2位小数。SampleInput100.25SampleOutput37.92Source#include<stdio.h>#include<math.h>main()(floatf,c;scanf("%f"z&f);c=5.0/9.0*(f-32.0);printf("%.2f',c);return0;十Exp3_5手机收费TimeLimit:1000MSMemoryLimit:65536KTotalSubmit:1518Accepted:684Description假设手机有两种收费方式,第一种是每分钟0.6元,无月租费;另一种是每分钟0.4元再收50元月租费,输入一个月打电话的时间(分钟),判断那一种方案更省钱。Input输入ー个月打电话的时间,整型。Output输出最经济的话费,实型,保留两位小数。SampleInput100SampleOutput60.00Source#include<stdio.h>#include<math.h>main(){floatmlzm2;intt;scanf(”%d,&t);ml=0.6*t;m2=50.0+0.4*t;if(ml>m2)printf(',%.2f,,/m2);elsepnntf("%.2f"zml);return0;}Exp3_6税收问题TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:1350Accepted:396Description假设某国家收税是分段计费,标准如下:在1万元以上部分收税20%;5000-10000元部分收税10%;1000-5000元部分收税5%;1000元以下部分免税。根据输入的金额计算应缴纳的税金。如:某人收入是12000元,则应缴纳的税金为4000*5%+5000*10%+2000*20%=1100元Input输入ー个月的收入,实型。Output输出应缴纳的税金,实型,保留两位小数。SampleInput12000SampleOutput1100.00Source#include<stdio.h>main()(floatx,sum;scanf(”%f”,&x);if(x<1000)sum=0;elseif(x<5000)sum=(x-1000.0)*0.05;elseif(x<10000)sum=(x-5000.0)*0.1+200.0;elsesum=(x-10000.0)*0.2+700.0;printf(H%.2r,sum);return0;第三届程序设计大赛大优惠TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:680Accepted:212Description中国移动推出最新的手机资费优惠方案,按照这个方案Tom的手机每天消费1元,每消费K元就可以获赠1元,ー开始Tom有M元,问最多可以用多少天?Input输入的测试数据为一行,实例包括2个整数M,K(2<=K<=M<=1000)〇Output输出ー个整数,表示M元可以用的天数。SampleInput43SampleOutput5Source#include<stdio.h>main()(intm,k;intd=OJ;scanf("%d%d"/&m,&k);for(i=l;i<=1000;i++){++d;if(i==k)(++m;i=0;)if(d==m)break;}printf("%d"zd);return0;|十三第三届程序设计大赛阶乘之和TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:143Accepted:76Description给你ー个非负数整数N,判断N是不是ー些数(这些数不允许重复使用,且为正数)的阶乘之和,如9=1!+2!+3!,如果是,则输出Yes,否则输出NoInput第.•行有一个整数M(0<M<100)表示有M组测试数据;每组测试数据有一个正整数N(0<N<=100000);Output如果符合条件,输出Yes,否则输出No;SampleInput3242931SampleOutputYesNoYesSource#include<stdio.h>main()(longintn[101],a[101];intmzp=0;longinty=0/them=l;inti,j,k;scanf("%d”,&m);for(i=0;i<m;i++)scanf("%d",&n[i]);for(i=0;i<m;i++){P二。;y=o;them=l;for(j=l;j<=n[i];j++)(y+=them;a[j]=them;them*=(j+l);if(them>=n[i])for(k=j;k>0;k-)if(n[i]-a[k]==O)|P=l;break;}elseif(n[i]-a[k]>0)n[i]=n[i]-a[k];if(P==l)printf(MYes\nM);elseprintf("No\n");)return0;十四第三届程序设计大赛五彩的卡片TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:132Accepted:60DescriptionTom拥有许多色彩缤纷的卡片,ー共有4种颜色,分别为:红,绿,蓝,黄。Tom随机取出N张卡片排成一列,他突然觉得不够美观。他决定替换掉某些卡片使得相邻两张卡片的颜色各不相同。你的任务就是帮他计算出至少需要替换掉的卡片数量。由于每种颜色的卡片他都有很多,所以可以认为每种颜色的卡片数量是无限的。Input输入数据的第一行为ー个整数N,表示序列中有N个字符(1<=N<=1OOOO)。接着一行有N个字符A1,…,An,Ai为,中的一个字符,表示第i张卡片的颜色,R表示红色,G表示绿色,B表示蓝色,丫表示黄色。Output输出ー个整数C,表示至少需要替换掉的卡片数。SampleInput10RGGBBBRYYBSampleOutputSource#include<stdio.h>main(){intn/m=0,i;charstr[10000];scanf("%d"/&n);scanf("%sH,str);for(i=l;i<n;i++)(if(str[i]==str[i-l]){str[i]='O';++m;}}printf(“%d”,m);return0;十五第三届程序设计大赛汽车加油TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:296Accepted:74Descriptionー辆汽车加满油后可行驶N公里。旅途中有若干个加油站。设计ー个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。Input第一行有2个正整数N和K(1<=N<=100,I<=K<=100),表示汽车加满油后可行驶N公里,且旅途中有K个加油站。接下来的1行中,有K+1个整数,表示第K个加油站与第K-1个加油站之间的距离。第〇个加油站表示出发地,汽车已加满油。第K+1个整数表示第K个加油站与目的地的距离。Output将编程计算出的最少加油次数输出。如果无法到达目的地,则输出NoSolution(注意:No和Solution之间有一个空格)SampleInput88323654272SampleOutput5Source#include<stdio.h>main()intn/k,p=lztime=O;inti;inta[102];scanf("%d%d"/&nz&k);for(i=0;i<=k;i++)(scanf("%d"z&a[i]);}for(i=0;i<=k;i++)(if(a[i]>n){P=0;break;))for(i=l;i<=k;i++)(if(a[i]+a[i-l]>n){++time;)elseif(a[i]+a[i-l]==n){++time;++i;)else{a[i]=a[i-l]+a[i];)|if(P==l)printf("%d",time);elseprintf("NoSolution");return0;十六第三届程序设计大赛搬果实TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:161Accepted:55Description在ー个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆,只有相邻的两堆可以合并。每一次合并,多多可以把两堆果子合并到ー起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过N-1次合并之后,就只剩下ー堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体カ。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。Input输入包括两行,第一行是ー个整数N(l<=N<=100)»表示果子的种类数。第二行包含N个整数,用空格分隔,每个整数M(l<=M<=200)是第M种果子的数目。Output包括一行,这一行只包含ー个整数,也就是最小的体力耗费值。SampleInput3129SampleOutput15#include<stdio.h>main(){intn,sum=O,p,temp,k;inta[105]={0},b[104]={0};intij;scanf(”%cT,&n);for(i=0;i<n;i++)scanf(”%cT,&a[i]);k=n;while(k>=2){temp=0;for(i=0;i<=k-2;i++){b[i]=a[i]+a[i+l];)for(i=0;i<k-l;i++)if(b[O]>b[i])(b[O]=b[i];temp=i;}sum+=b[0];a[temp]=b[0];for(i=temp+l;i<n;i++){a[i]=a[i+l];)-k;}printf(”%d”,sum);return0;}测试时用的数据#include<stdio.h>main()intn,sum=O,p,temp,k;inta[105]={0Lb[104]={0};intij;scanf(”%cT,&n);for(i=0;i<n;i++)scanf("%cT,&a[i]);k=n;while(k>=2)(temp=O;for(i=0;i<=k-2;i++){b[i]=a[i]+a[i+l];printf("%d*****,/b[i]);}for(i=0;i<k-l;i++)if(b[O]>b[i])(b[O]=b[i];temp=i;}sum+=b[O];printf("b[O]=%d/sum=%d/temp=%d"/b[O]/sum/temp);a[temp]=b[O];for(i=temp+l;i<n;i++){a[i]=a[i+l];)-k;for(i=0;i<k;i++)printf("..%d.."za[i]);printf(ツk=%d”,k);printf("\n");|printf(”%d”,sum);return0;十七第三届程序设计大赛哥德巴赫猜想TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:134Accepted:60Description1742年,哥德巴赫在给好友欧拉的一封信里陈述了他著名的猜想——哥德巴赫猜想:任何一个大于4的偶数都是两个素数之和。例如:8=3+5,3和5都是素数。20=3+17=7+1342=5+37=11+31=13+29=19+23你的任务是写出10000以内的哥徳巴赫猜想。Input输入包含ー组或多组测试数据。测试数据每一行是ー个偶数N(0<N<=10000)输入数据以〇为结束符,〇不需要处理。Output对于每行测试数据,对应一行形式为N=a+b输出(a<b),a和b必须是素数。如果有多种结果,请输出b-a最大的ー组。SampleInput820420SampleOutput8=3+520=3+1742=5+37#include<stdio.h>#defineN10000main(){intn[N];intk=O,p,a,b;intstr[10002];inti,j,v,m=0,x;for(i=2;i<10000;i++){x=0;for(j=2;j<i;j++){if(i%j==O)x=l;)if(x==O)(str[m]=i;++m;)}for(i=0;;i++)(scanf("%d”,&n[i]);++k;if(n[i]==O)break;}-k;for(i=0;i<k;i++)(P=l;for(j=0;j<m;j++)(for(v=m;v>=0;v—)(if(n[i]==str[j]+str[v])(a=str[j];b=str[v];printf("%d=%d+%d\n",n[i]/a/b);P=0;break;}}if(p==O)break;return0;}十八第二届程序设计大赛亏多少?TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:91Accepted:71Description商人能赚钱也能赔钱。比如,商人吕不韦花40元买了某商品,他决定70元卖掉。ー个顾客给了吕不韦100元,吕不韦找了他30元,理论上吕不韦赚了30元。但很不幸,吕不韦发现那100元是假的,于是他亏了?0元(40元商品+30元的找钱)。Input我们有多组测试数据,第一行是ー个X(1<=X<=20),表示你要分析的X个问题。接下来的X行中,每行由4个数字构成,分别为N,M,P和C(数字范围0-32767),数字之间以ー个空格分开。N:商品的成本M:商品的售价P:吕不韦收到假钱总数C:吕不韦找给顾客的钱其中:N<M;P可能小于M,因为顾客可能给一部分假钱,一部分真钱。Output每行输入数据对应一个输出数据,告诉吕不韦亏多少钱,如果还是赚钱的,那么请输出负数。SampleInput34070100304070502014604323913902153SampleOutput7020-13885Hint提示:例子2分析:顾客支付了90元(50元假钱+40元真钱),吕不韦亏了20元(得到40元真钱ー找给顾客20元一40元商品价格)Source#include<stdio.h>intmain()(intx,n,m,p,c;intsum[21]={0};inti;scanf("%d”,&x);for(i=0;i<x;i++)(scanf("%d%d%d%d”,&n,&m,&p,&c);if(p==m+c)sum[i]+=(c+n);elsesum[i]+=(n+p-m);}for(i=0;i<x;i++){printf("%d\n,sum[i]);)return0;十九第二届程序设计大赛IP地址TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:110Accepted:57Description常见的!P地址的表示方式为x.x.x.x,如172.16.163.66,它还可以用“位”来表示。你的任务是将32个,〇,和T构成的二进制序列转换为十进制的表示格式,每8位之间以‘.’间隔。Input输入数据第一行是ー个正整数N(1<=N<=20),表示有N组数据需要转换。接下来的N行表示N组数据。Output每行输入数据对应一行输出数据。每行输入的二进制数据对应ー个十进制的输出数据,每8位以'.'间隔。SampleInput400000000000000000000000000000000000000111000000011111111111111111100101110000100111001011000000001010000000100000000000000000001SampleOutputo.o.o.o3.128.255.255203.132.229.12880.16.0.1Source#include<stdio.h>intfact(intn);intmain(){intn,i,j,k;inta[20][4]={0},b[8];charstr[32];scanf("%d",&n);for(i=0;i<n;i++)(scanf(”%s”,str);for(k=0;k<4;k++)(for(j=8*k;j<8*(k+l);j++)(if(strU]=='O')b[j-8*k]=0;elseb[j-8*k]=fact(7-j+8*k);}for(j=8*k;j<8*(k+l);j++)a[i][k]+=bU-8*k];))for(i=0;i<n;i++)printf(”%d,%d・%d.%d\n”,a[i][0],a[i][lLa[i][2],a[i][3]);return0;intfact(intn)(intres;if(n==O)res=l;elseres=2*fact(n-l);returnres;二十求和问题TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:861Accepted:349Description求s=a+aa+aaa+aaaa+aaa a的值,其中a是ー个数字,例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘输入。Input输入的测试数据为1行,实例包括2个整数,分别是a的值和加数的个数。Output输出1个整数,表示求和结果。SampleInputSampleOutput37035Source#include<stdio.h>intmain(){inta,n,sum=0,p=l;intj;scanf("%d%d",&az&n);for(j=n;j>0;j-)P=a*j;a*=10;sum+=p;printf(”%d”,sum);return0;ProblemA:字符串TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:277Accepted:132Description从键盘中输入一串字符串(长度不超过80个字符),假定输入的字符串中只含有字母和#号,请将字符串中的前导#全部移到字符串的尾部,中间的#保持不变。可使用数组或指针实现,不能使用字符串复制函数。Input输入ー串字符串,长度不超过80个字符,只包含字母和#号,并且以#开头和结束。Output输出移动后的字符串。SampleInput#####A#BC#DEF#G###SampleOutputA#BC#DEF#G########Source#include<stdio.h>#include<string.h>intmain()(charstr[80];intij,k二〇;scanf("%sM/str);for(i=0;i<strlen(str);i++)if(str[i]>='a,&&str[i]<='z'11str[i]<='Z,&&str[i]>='A')(break;)for(j=i;j<strlen(str)+i;j++)if(j<strlen(str))printf("%c",str[j]);else{printf("%c,str[k]);k++;)return0;二十二完数TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:540Accepted:307Description输入ー个正整数X,判断是否为完数。说明:“完数’’是指这个数正好等于它的因子之和。例如,6的因子为1、2,3,而6=1+2+3,因此6是“完数”Inputー个正整数。Outputyes或苕noSampleInput6SampleOutputyesSource#include<stdio.h>intmain()intn,sum=O;intij;scanf(”%cT,&n);for(i=l;i<n;i++)(if(n%i==O)|sum+=i;)}if(sum==n)printf("yes");elseprintf("no");return0;二十三多项式求和TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:462Accepted:282Description输入ー个正整数m,计算y的值(y=l+l/3+l/5+l/7+...+l/(2m+l))Inputー个正整数。Outputー个实数,保留小数点后六位。SampleInputSampleOutput2.133256Source#include<stdio.h>intmain()(floatm,sum,y=l,i;scanf("%f,&m);for(i=l;i<=m;i++)(y+=1.0/(2*i+l);}printf("%f",y);return0;二十四求和问题TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:715Accepted:303Description计算l-x/2+x/3-x/4+ +x/99-x/100的值。其中,x是ー个正整数。(1<=x<=1000)Input输入ー个正整数,代表X的值。Output输出ー个实数,表示求和结果,保留2位小数。SampleInput1SampleOutput0.69Source#include<stdio.h>intmain()(intx;floaty,temp=1.0,しsum=1;scanf("%dH,&x);for(i=2;i<=100;i++)(temp*=-l;y=temp*x/i;sum+=y;)printf("%.2f',sum);return0;)一十五求和问题TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:237Accepted:151Description计算l+x/2-x/3+x/4-x/5+……+x/98-x/99+x/100的值。其中,x是ー个正整数。Input输入ー个正整数,代表X的值。Output输出ー个实数,表示求和结果,保留2位小数。SampleInput1SampleOutput1.31Source#include<stdio.h>intmain(){intx;floaty/temp=1.0J,sum=l;scanf(“%d”,&x);for(i=2;i<=100;i++)y=temp*x/i;sum+=y;temp*=-l;printf("%.2f",sum);return0;二十六判断字符类型TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:152Accepted:70Description判断输入的单个字符是否为小写字母。Input输入单个字符。Output是小写字母,屏幕输出Yes不是小写字母,屏幕输出N。SampleInputaSampleOutputYesSource#include<stdio.h>intmain()charch;scanf("%c"z&ch);if(ch<='z'&&ch>='a')printf("Yes");elseprintf("No");return0;二十七级数求和问题TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:209Accepted:66Description计算x-x/2+x/3-x/4+...+x/99-x/100+...,直到最后ー项的绝对值小于0.00001为止。Input正整数x(1=<n<=100)Outputー个实数,小数点后保留2位。SampleInputSampleOutput2.08Source#include<stdio.h>#include<math.h>intmain(){intx;floati/y/sum=0/temp=l;scanf("%dツ&x);for(i=l;;i++)(y=temp*x/i;temp*=-l;sum+=y;if(fabs(y)<le-5)break;}printf(”%.2f',sum);return0;|二十八符合条件的数TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:118Accepted:66Descriptionー个正整数与3的和是5的倍数,与3的差是6的倍数,编写ー个程序求符合条件的前n个数。Input正整数n(1=<n<=1000)Output符合条件的数,每个一行。SampleInputSampleOutput275787117147Source#include<stdio.h>intmain()(intn,x[500],i,k=0;for(i=l;i<=1000;i++){if((i+3)%5==0&&(i-3)%6==0){x[k]=i;++k;}}scanf("%d",&n);for(i=0;i<n;i++)printf("%d\n”,x[i]);return0;二十九ProblemB:交换字符TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:97Accepted:42Description从键盘中输入一串字符串(长度不超过80个字符),假定输入的字符串中只含有字母和数字,请将字符串中的前导数字全部移到字符串的尾部,中间的数字保持不变。可使用数组或指针实现,不能使用字符串复制函数。Input输入一串字符串,长度不超过80个字符,只包含字母和数字,并且以数字开头和结束。Output输出移动后的字符串。SampleInput1234A5BC6DEF7G89SampleOutputA5BC6DEF7G891234#include<stdio.h>#include<string.h>intmain(){charstr[80];inti,j,k=O;scanf("%swfstr);for(i=0;i<strlen(str);i++)if(str[i]>='a'&&str[i]<='z'11str[i]<=T&&str[i]>=*A'){break;}for(j=i;j<strlen(str)+i;j++)if(j<strlen(str))printf("%c",str[j]);else{printf("%c",str[k]);k++;)return0;}三十PK赛TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:397Accepted:222Description一年一度的厦门理工学院程序设计大赛又开始了,今年是第五届。今年赛会组织方决定用ー种新规则决定获胜的选手。在每ー轮比赛中,参赛者都是成对的,两两比赛。输者将被淘汰,赢者将自动晋级到下ーー轮比赛中。比赛一直进行到只剩ー个人为止,这个人就是冠军。在一轮比赛中,如果比赛人数不是偶数,那么将随机选择ー个参赛者自动晋级下一-轮,而其它人还是ー・对一地完成本轮比赛。赛会组织方想知道要产生冠军需要进行多少轮比赛。Input参赛的人数N(1<=N<=1000000)。Output比赛需要的总轮数。SampleInput15SampleOutputSource#include<stdio.h>intmain()(intnlsum=0,i;scanf(,"%d",&n);for(i=l;;i++)(if(n%2!=0)(一n;n/=2;++n;++sum;)else{n/=2;++sum;if(n==l)break;)printf(“%d”,sum);return0;第四届程序设计大赛数字四的游戏TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:314Accepted:113Description一年一度的厦门理工学院程序设计大赛又开始了,今年是第四届。今年赛会组织方决定用一种新规则决定获胜的选手。他们将参赛选手从1编号到N并围成一圈,从第一个人开始报数,报到4的人退出,下ー个人从1开始重新报数,报到4的人退出。如此循环,直到留下最后ー个人,他就是获胜者。Input参赛的人数N(1<=N<=1000)〇Output获胜选手的编号。SampleInputSampleOutputSource#include<stdio.h>intmain()(inta[1001]={0};inti=lzk;intn,p二〇;scanf("%d”,&n);for(i=l;i<=n;i++)a[i]=i;k=n;i=l;while(k!=l){if(a[i]!=O)++P;if(p==4)(a[i]=O;p=O;-k;)if(i==n)(i=O;}++i;)for(i=l;i<=n;i++)if(a[i]!=O)printfド%d”,a[i]);return0;三十二搬家的烦恼TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:635Accepted:76Description理工学院的学生每个学年结束以后都要搬宿舍,搬宿舍的烦恼还只是暂时的,搬宿舍以后发现插座不够用是永远的伤痛。同学们发现新宿舍只有一个插座,但他们有很多台电脑需要同时使用,于是他们买来了好儿个排插,每个排插可支持的插头不ー样多,你的任务是帮他们计算ー下他们的排插能支持多少台电脑同时使用。(注意:排插本身也需要电源接入)Input输入数据由一个整数N打头(l<=N<=10),表示接下来测试案例的个数。接下来是N行,每行描述了一个测试案例。每个测试案例以ー个整数K打头(1<=K<=10),表示这个测试案例中排插的数量。然后同一行中紧跟着K个整数,中间用空格隔开,0102…OK(2<=0i<=10)表示每个插座可支持的插头数。Output每个测试案例对应一行整数输出,这个整数表示最多能支持的电脑数量。SampleInput23234410101010SampleOutput737Source#include<stdio.h>intmain(){intn,k,a[1l],y,sum;intij;scanf("%d",&n);fbr(i=O;i<n;i++)(sum=O;scanff%d”,&k);Cr(j=O;j〈k;j++)(scanf(M%dH,&y);sum+=y;)a[i]=sum-k+l;)fbr(i=O;i<n;i++)printf(n%d\nn,a[i]);return0;三十三Description输入ー个正整数m,计算y的值(y=l+l/2+l/4+l/6+..・+l/(2m))〇Inputー个正整数。Outputー个实数,保留小数点后2位。SampleInputSampleOutput2.41Source#include<stdio.h>intmain()(intm;doubley=l;inti;scanf(n%dn,&m);fbr(i=l;i<=m;i++)y=y+1.0/(2.0*i);printf(H%.2f\y);return0;三十四ProblemATimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:260Accepted:45Description在数学里,0.999...,9的无限循环,是1的另ー个定义。因为计算机处理数值的有效数字有限,code4101认为数值v(0<=v<1)如果严格大于。99999999999999999999(共20个9),就认为它是“ド‘。code4101很懒,不想用十个手指头加十个脚趾头去数,你能写个程序帮他判断ー个数是否为吗?Input输入数据的第一行为ー个整数T,表示有T(0接下来T行,每行有一个实数v(0<=v<l),输入保证以“〇.”开头,v至少有1位小数,最多70位小数。Output每个测试数据输出一行,输出Yes或No〇SampleInput40.12340045000000.00.99999999999999999999991235764320000.999999999998999999999SampleOutputNoNoYesNoSource#include<stdio.h>#include<string.h>intmain(){charv[2000][73]={"0"};charyuan[73]={"0.99999999999999999999000000000000000000000000000000000000000000000000000");inti,j,t,a,p;scanf("%d",&t);fbr(i=O;i<t;i++)scanf("%s"5&v[i][0]);fbr(i=O;i<t;i++)P=1a=strlen(v[i]);for(j=2;j<a;j-H-)(if(v[i][j]<yuanLj])(p=0;break;)elseifi[v[i][j]>yuan[j]&&j==72&&v[i][72]==0)(P=0;break;)elseif(v[i][j]>yuan|j]&&j>19)P=l;break;|elseif(v[i][j]=yuan[j]&&j—a-1)(p=0;break;)}if{p=l)print^"Yes\n");elseprintf("No\n");)return0;)三十五木棒还原TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:396Accepted:53Description有N根木棒,现在要把N根木棒还原为ー・根并且每次只能将两根进行连接,所花费的时间是两根木棒的长度和,要求还原为ー根木棒且总时间最短。Input输入数据由一个整数N打头(l<=N<=100),表示N跟木棒,接下来一行由N个数构成,中间用空格隔开,0102…ON(1<=0i<=100)表示每根木棒的长度。Output输出ー行正整数,表示还原为一根木棒的最短时间。SampleInput3858SampleOutput34Source#include<stdio.h>voidxuan(inta[]Jntp);intmain()(intn,a[101],b[101];intp,sum=O;inti;scanf("%d”,&n);for(i=0;i<n;i++)scanf("%d",&a[i]);}P=n;while(p>l)(xuan(a,p);sum+=a[O];-P;)printf("%d",sum);return0;)voidxuan(inta[],intp)(intしtemp;for(i=l;i<p;i++){if(a[0]>a[i])(temp=a[0];a[0]=a[i];a[i]=temp;})for(i=2;i<p;i++)if(a[l]>a[i])(temp=a[l];a[l]=a[i];a[i]=temp;)a[0]=a[l]+a[0];for(i=l;i<p;i++)a[i]=a[i+l];}三十六土豪TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:430Accepted:102Description小明去北京全聚德吃烤鸭,发现地上有・・张土豪账单,账单信息如下:72只烤鸭¥_679_表示这些烤鸭总价格的第一位和最后一位用,]”线代替了,因为这两位褪色了,难以辨认。这两位褪色的数字是什么呢?ー只烤鸭的价格是多少呢?N只烤鸭¥_XYZN表示烤鸭岛总数后,总价格的五位数中,第一位非。,且每只烤鸭的价格是整数,所有的烤鸭价格是相同的。Input输入数据第一行是ー个整数N(l<=N<100),代表烤鸭的总数,接下来的一行中有三个整数X、Y和Z,他们之间用ー个空格隔开,他们代表这些烤鸭的原始价格¥_XYZー。Output测试数据可能不止一种价格方案,也可能没有一种价格方案。对于后一种情况输出05如果不止一种价格方案,输出对应单只烤鸭最贵的褪色数字和单只烤鸭的价格,以空格作为间隔符。SampleInput72679SampleOutput32511Source#include<stdio.h>#include<string.h>intmain()longintsum,p=0;intjg[5];inti,j,n;scanf("%d",&n);for(i=l;i<4;i++){scanf("%d",&jg[i]);)for(i=9;i>0;i--){for(j=9;j>=0;j-){恒[0]=i;jg[4]=j;sum=jg[0]*10000+jg[l]*1000+jg[2]*100+jg[3]*10+jg[4];if(sum%n==0)(p=sum/n;break;))if(p!=O)break;}if(p!=O)printf("%d%d%ld",jg[0],jg[4],p);elseprintf("%ld",p);return0;三十七第二届程序设计大赛丑陋的数TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:129Accepted:50Description丑陋的数是ー种它的因数只由2,3,5构成的数。1,2,3,4,5,6,8,9,10,12是前十个丑陋的数(如:6=2*3是丑陋的数,11=1*11不是丑陋的数),请注意1也算丑陋的数。给定一个整数N,写ー个程序找出第N个丑陋的数。Input每行为ー个正整数N(N<1500)o输入数据以N=0作为结束符。Output每行输入数据对应一行输出数据,输出第N个丑陋的数。输入数据N=0不要处理。SampleInput90SampleOutputi210Source#include<stdio.h>inth[5850];intmin(inta,intb,intc);voidclds();intmain()(intn[1500]={l};inti=l,k;while(n[i-l]!=O)scanf(H%dn,&n[i]);++i;)k=i;clds();printfi;"%d\n",h[n[i]]);return0;)voidclds()(intil=l,i2=l,i3=l;inttl=l,t2=l,t3=l;inti;h[l]=l;fbr(i=2;i<=5850;i++)(tl=h[il]*2;t2=h[i2]*3;t3=h[i3]*5;h[i]=min(tl,t2,t3);if(h[i]=tl)il++;if(h[i]=t2)i2++;if(h[i]=t3)i3++;intmin(inta,intb,intc)(intz;z=a;if(z>b)z=b;if(z>c)z=c;returnz;)三十八第二届程序设计大赛正确的IPTimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:119Accepted:38Description在网络课程上,我学到了很多有关ip的知识。ip全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成ー个无符号整数(因此不需要用正号出现),如172.16.163.66(每个部分的范围是0-255)是我们非常熟悉的IP地址,ー个IP地址串中没有空格出现(因为要表示成一个32位数字)。,但是粗心的我,常常将IP地址写错,现在需要你用程序来判断。Input输入数据第一行是ー个正整数N(l<=N<=20),表示有N组数据需要判断。接下来的N行表示N组数据。Output对于每组输入数据,判断输入的IP是否正确,如果正确输入YES,否则N0。SampleInput3172.16.290.3192.168.100.16223.16.34.2.3SampleOutputNOYESNOSource#include<stdio.h>#include<string.h>#include<stdlib.h>intpdjg(charstr[]Jntpd);intmain(){charstr[20][32],*p[10];intn,pd;inti,j;scanf("%d"z&n);for(i=0;i<n;i++)(scanf(“%s”,&str[i]);}for(i=0;i<n;i++)(pd=1;for(j=0;j<strlen(str[i]);j++)(if(st巾]昨ゴ’11(st巾]11str[i皿<=’9'))〃判断这个字符是否在。〜9或’pd=l;else(pd=O;break;))//printf("pdO=%d"/pd);pd=pdjg(str[i]zpd);if(pd==l)printf("YES\n");elseprintf("NO\n");}return0;}intpdjg(charstr[]zintpd)(char*p;intbza[3];intizk=O;p=str;//printf(Hpdl=%d"zpd);for(i=0;i<strlen(str);i++)//printf("*%c*",str[i]);if(str[i]=='.')(a[k]=i;++k;)}//printf("pd2=%d",pd);if(k!=3)〃看’」是否有3个(return0;}//printf("pd3=%d"/pd);b=atoi(p);//printf("bO=%d"/b);if(b<011b>255)(return0;)// printf(“pd4=%dツpd);for(i二〇;i<3;i++)〃判断这个数是否在02255(b=atoi(p+a[i]+l);// printf("a=%d\n",a[i]);// printf(カニ%d\n”,b);tf(b<011b>255){return0;)// printf(”pd5二%d,pd);}//printf("pd6=%d\nK/pd);returnpd;三十九东方非想天则TimeLimit:1000MSMemoryLimit:65536K

TotalSubmit:76Accepted:27Description东方系列有一款名叫东方非想天则的弹幕格斗类游戏,游戏类似拳皇可单机可联网。玩家分为沙包、战士、触手。沙包:指挨打的弱者,只能打赢电脑AL上网和真人玩家联机对战基本全输战士:指拥有一定实カ,进攻主动从不龟缩的玩家,战士不一定是强者,但也有可能是强者触手:触手具体细分也能分好儿种,对战时有的触手喜欢先让对手把自己打的快死时爆发把对手从满血打死,有的触手喜欢自己打了对方多少

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论