宁波大学C语言题目解答Tom(RACHE)1000数字自动应答器TimeLimit:1000MS|MemoryLimit:32768KBSubmits:4194|Solved:1386DescriptionCoCo刚开始学习程序设计,打算试试自己的水平,看计算机会不会听自己的吩咐,她想做的第一件事就是"我做什么,你也做什么".
她会从键盘输入任意两个整数,希望计算机能把这两个整数原样输出到屏幕上.
Input从键盘输入两个整数.
Output向屏幕输出这两个整数,两个数据之间有空格.
最后一个数据输出后有换行.
SampleInput-910SampleOutput-910HINTSourceNBUOJ#includevoidmain(){inta,b;scanf("%d%d",&a,&b);printf("%d%d\n",a,b);}1001字符自动应答器TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2496|Solved:1208Description要让计算机听话似乎也不是很难,那么再多试几次,学会彻底控制住计算机.
从键盘任意输入一个字符,再向屏幕输出这个字符.
Input任意输入一个字符.
Output输出该字符.
输出后换行.
SampleInput#SampleOutput#HINTSourceNBUOJ#includevoidmain(){charc;scanf("%c",&c);printf("%c\n",c);}1002单组A+BTimeLimit:1000MS|MemoryLimit:32768KBSubmits:3169|Solved:1353Description从键盘输入任意两个整数a和b,计算并输出a+b的值.
Input从键盘输入两个整数a和b.
Output输出这两个数的和.
输出后换行.
SampleInput12SampleOutput3HINTSourceNBUOJ#includevoidmain(){inta,b;scanf("%d%d",&a,&b);printf("%d\n",a+b);}1003不确定组数的A+BTimeLimit:1000MS|MemoryLimit:32768KBSubmits:2367|Solved:979DescriptionCoCo在上小学,最近数学老师经常布置一些速算的题目,比如连续给出若干组数据(每组包含2个整数),要求立刻计算出每组数据求和的结果.
这可是比较考验小学生的计算能力的,你能根据这个任务的需求编写类似的求和程序吗要求从键盘输入多组a和b的值,分别计算每组a+b的值并输出.
Input输入包含多组测试数据,每行包含两个整数a和b.
当输入为00时,测试结束,不需要计算输出0加0的结果.
Output对于每一组整数a,b,输出它们的和,每行输出一个结果.
SampleInput15102001817000SampleOutput6301817HINTSourceNBUOJ#includevoidmain(){inta,b;scanf("%d%d",&a,&b);while(a!
=0||b!
=0){printf("%d\n",a+b);scanf("%d%d",&a,&b);}}1004N组A+BTimeLimit:1000MS|MemoryLimit:32768KBSubmits:2631|Solved:1122Description这次还是计算多组a+b的值,不过会告诉你一共有多少组数据,问题是不是简单一些了Input第一行包含一个整数N,表示有N组数据.
接下来的N行,每行输入一组整数a和b.
Output对于每一组整数a,b,输出它们的和,每行输出一个结果.
SampleInput415102067901123SampleOutput63015734HINTSourceNBUOJ#includevoidmain(){inta,b,N,i;scanf("%d",&N);for(i=1;ivoidmain(){doublea,b,c;scanf("%lf%lf%lf",&a,&b,&c);printf("%.
1lf\n",(a+b+c)/3);}1006计算月收入TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2806|Solved:1232DescriptionCoCo的表姐刚从大学毕业,进入到一家小型外贸公司工作.
该公司员工月收入的计算方法为:月基本工资加当月提成.
从键盘输入CoCo表姐某月的基本工资和该月的提成,计算并输出表姐该月的收入.
Input输入两个数分别代表月基本工资和月提成.
Output计算并输出月收入,保留2位小数.
输出后换行.
SampleInput3100.
21200SampleOutput4300.
20HINTSourceNBUOJ#includevoidmain(){doublea,b;scanf("%lf%lf",&a,&b);printf("%.
2lf\n",a+b);}1007温度转换TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2253|Solved:1256Description2011夏季,热浪席卷了全球的大部分地方.
网上报道美国局部地区的温度达到了100华氏度,而我们国内的温度多在38摄氏度左右.
那么38摄氏度和100华氏度到底哪个更热一些呢请你帮忙编一个程序来解决这一问题.
从键盘输入一个华氏温度,求出其对应的摄氏温度.
计算公式如下:其中c表示摄氏温度,f表示华氏温度.
Input从键盘输入一个华氏温度值.
Output输出对应的摄氏温度值,结果要求保留2位小数.
输出后换行.
SampleInput100SampleOutput37.
78HINT建议用double数据类型C++编程的话请使用setprecision(2)SourceNBUOJ#includevoidmain(){doublea;scanf("%lf",&a);printf("%.
2lf\n",(a-32)*5/9);}1008圆周长和圆面积TimeLimit:1000MS|MemoryLimit:32768KBSubmits:4336|Solved:1443Description从键盘输入一个圆的半径r,计算并输出圆周长和圆面积.
Input输入一个圆半径r.
Output依次输出圆周长和圆面积,结果保留两位小数.
输出后换行.
SampleInput41SampleOutput257.
485278.
34HINT圆周率使用3.
14建议用double数据类型SourceNBUOJ#includevoidmain(){doublea;scanf("%lf",&a);printf("%.
2lf%.
2lf\n",2*3.
14*a,3.
14*a*a);}1009圆柱体表面积TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2189|Solved:1064Description输入圆柱体的底面半径r和高h,计算圆柱体的表面积并输出到屏幕上.
Input输入圆柱体的底面半径r和高h.
Output计算圆柱体的表面积并输出到屏幕上,保留2位小数.
SampleInput42.
171.
6SampleOutput30060.
92HINT圆周率使用3.
14.
建议用doubleSourceNBUOJ#includevoidmain(){doubler,h;scanf("%lf%lf",&r,&h);printf("%.
2lf\n",3.
14*2*r*h+2*3.
14*r*r);}1010球体的体积TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2535|Solved:1111Description编写程序计算球体的体积.
参考公式v=(4/3)PI*r^3,其中PI表示圆周率.
Input输入球体半径r.
Output计算球体体积并输出到屏幕上,保留2位小数.
SampleInput96.
2SampleOutput3727293.
58HINT圆周率使用3.
14SourceNBUOJ#includevoidmain(){doubler;scanf("%lf",&r);printf("%.
2lf\n",3.
14*r*r*r*4/3);}1011卫生包干区的面积TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1901|Solved:1123Description为了培养大家热爱劳动的习惯,学校将校园的角角落落划分成若干卫生包干区,分给各个班级.
CoCo所在班级也分到了一块,作为班长,CoCo需要知道这块区域到底有多少大,以便分配一定数量的同学去打扫,你能帮她计算一下这块包干区的大小吗已知包干区的形状是一个任意三角形,并且CoCo已经派同学把各条边的边长测量好了,假设3条边的边长为a,b,c,请求出这块包干区的面积并输出.
可利用海伦公式求解任意三角形面积:其中Input输入三条边的边长(假设3条边长肯定可以构成三角形).
Output输出三角形面积.
保留2位小数.
SampleInput345SampleOutput6.
00HINT建议用double数据类型SourceNBUOJ#include#includevoidmain(){doublea,b,c,p,s;scanf("%lf%lf%lf",&a,&b,&c);p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf("%.
2lf\n",s);}1012判断三角形TimeLimit:1000MS|MemoryLimit:32768KBSubmits:3513|Solved:1159Description输入三角形的3条边a,b,c,如果能构成一个三角形,则输出面积,否则输出Error.
Input输入三个数a,b,c(浮点类型).
Output如果这三条边能构成一个三角形,则计算并输出这个三角形的面积,保留2位小数.
如果不能构成三角形就输出Error.
SampleInput314SampleOutputErrorHINT在一个三角形中,任意两边之和大于第3边.
SourceNBUOJ#include#includevoidmain(){doublea,b,c,p,s;scanf("%lf%lf%lf",&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a){p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf("%.
2lf\n",s);}elseprintf("Error\n");}1013两点的距离TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2286|Solved:1144Description从键盘输入两个数据表示平面上任意两点.
计算并输出这两点之间的距离.
Input依次输入4个数据x1、y1、x2、y2分别表示平面上的两点.
Output输出这两点间的距离.
保留2位小数.
SampleInput3.
14.
25.
06.
0SampleOutput2.
62HINT建议用doubleSourceNBUOJ#include#includevoidmain(){doublea,b,c,d,s;scanf("%lf%lf%lf%lf",&a,&b,&c,&d);s=sqrt(pow((a-c),2)+pow((b-d),2));printf("%.
2lf\n",s);}1014鸡兔同笼TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2310|Solved:719Description鸡和兔关在一个笼子里,鸡有2只脚,兔有4只脚,没有例外.
已知现在可以看到笼子里m个头和n只脚,求鸡和兔子各有多少只Input输入两个整数m和n,分别代表笼子里头的个数和脚的个数.
(假设m和n都在合法的数据范围内)Output依次输出鸡和兔的只数.
输出以后换行.
(数字为0的也要输出)SampleInput1240SampleOutput48HINTSourceNBUOJ#includevoidmain(){intm,n,x,y,a;scanf("%d%d",&m,&n);a=n/2;y=a-m;x=m-y;printf("%d%d\n",x,y);}1015两数交换输出顺序TimeLimit:1000MS|MemoryLimit:32768KBSubmits:3304|Solved:1260Description从键盘输入两个整数x,y,然后交换它们的顺序并输出.
Input从键盘输入两个整数存入存入变量x,y中.
Output首先输出x,y的初始值,然后换行输出交换顺序后的两数.
同一行内的数据以空格间隔,最后一个数据输出后要换行.
SampleInput1223SampleOutput12232312HINTSourceNBUOJ#includevoidmain(){intm,n;scanf("%d%d",&m,&n);printf("%d%d\n%d%d\n",m,n,n,m);}1016两浮点数相除TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1498|Solved:969Description输入两个浮点数x,y,计算x除以y的值.
Input输入两个浮点数x,y.
Output输出运算结果的值,要求保留两位小数.
SampleInput23SampleOutput0.
67HINTSourceNBUOJ#includevoidmain(){doublem,n;scanf("%lf%lf",&m,&n);printf("%.
2lf\n",m/n);}1017商和余数TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1809|Solved:1079Description输入两个整数x,y,计算x除以y的商和余数.
Input输入两个整数x,y.
Output输出商和余数.
SampleInput6514SampleOutput49HINTSourceNBUOJ#includevoidmain(){intm,n;scanf("%d%d",&m,&n);printf("%d%d\n",m/n,m%n);}1018植树问题TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2403|Solved:1333Description某学校植树节开展植树活动,已知树苗有m株,参加植树的同学有n人(且m>n),请问每位同学平均可以植树几株还有几株剩余Input输入两个整数m和n,分别表示树苗的数量和学生的人数(m>n).
Output输出每位同学平均植树的数量及剩余的树苗数量.
SampleInput16332SampleOutput53HINTSourceNBUOJ#includevoidmain(){intm,n;scanf("%d%d",&m,&n);printf("%d%d\n",m/n,m%n);}1019美元和人民币TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1602|Solved:1104Description美元越来越贬值了,手上留有太多的美元似乎不是件好事.
赶紧算算你的那些美元还值多少人民币吧.
假设美元与人民币的汇率是1美元兑换6.
5573元人民币,编写程序输入美元的金额,输出能兑换的人民币金额.
Input输入美元的金额.
Output输出能兑换的人民币的数值.
输出保留2位小数.
SampleInput100SampleOutput655.
73HINTSourceNBUOJ#includevoidmain(){doublem;scanf("%lf",&m);printf("%.
2lf\n",6.
5573*m);}1020字符的ASCII码值TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1949|Solved:1139Description从键盘输入一个字符,输出其对应的ASCII码值.
Input输入一个字符.
Output输出字符对应的十进制ASCII码值.
SampleInputASampleOutput65HINTSourceNBUOJ#includevoidmain(){charm;scanf("%c",&m);printf("%d\n",m);}1021单个字母的小写变大写TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2429|Solved:1365Description从键盘输入一个小写字母,将其转换成大写字母并输出.
.
Input输入一个小写字母.
(假设输入的一定是小写字母)Output输出其大写形式.
SampleInputaSampleOutputAHINTSourceNBUOJ#includevoidmain(){charm;scanf("%c",&m);printf("%c\n",m-'a'+'A');}1022简单译码TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1989|Solved:1288Description从键盘输入任意两个字母,对它们进行译码.
如需要将"Hi"译成密码,规则是:用原字母后的第3个字母来代替,如H后面第3个字母是K,i后面第3个字母是l,因此"Hi"应译为"Kl".
Input从键盘输入任意两个字母,分别存放到变量ch1,ch2中.
输入时两个字符间没有空格.
Output按上述规则进行译码后输出.
输出时两个字符间没有空格,输出完毕后换行.
SampleInputHiSampleOutputKlHINTSourceNBUOJ#includevoidmain(){charm,n;scanf("%c%c",&m,&n);printf("%c%c\n",m+3,n+3);}1023字符加减运算TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2142|Solved:981Description编写一个程序,求两个字符之间的加减运算.
Input连续输入三个字符,其中第一个输入运算符号(+或者-),后两个输入字符.
如+ab表示计算字符a与字符b相加的结果.
Output输出两字符ASCII码值相加减的结果.
SampleInput-abSampleOutput-1HINTSourceNBUOJ#includevoidmain(){chara,m,n;scanf("%c%c%c",&a,&m,&n);switch(a){case'-':printf("%d\n",m-n);break;case'+':printf("%d\n",m+n);break;}}1024简单多项式TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1789|Solved:1020Description求以下多项式的值.
其中,x为浮点数,从键盘输入,经过计算后,将y的值输出到屏幕上,保留1位小数.
Input输入浮点数x的值.
Output计算并输出y的值,保留1位小数.
SampleInput1SampleOutput11.
0HINTSourceNBUOJ#includevoidmain(){floatx,y;scanf("%f",&x);y=2*x*x+x+8;printf("%.
1f\n",y);}1025求多项式值TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2214|Solved:1227Description编程根据输入的x的值,结合数学函数计算以下多项式的值,结果保留1位小数.
Input输入浮点数x的值.
Output计算并输出多项式的结果,保留1位小数.
SampleInput1SampleOutput10.
0HINT建议用doubleSourceNBUOJ#include#includevoidmain(){doublex,y;scanf("%lf",&x);y=3*pow(x,4)-2*pow(x,3)-x*x+10;printf("%.
1lf\n",y);}1026居民电费TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1844|Solved:1175Description某地居民用电是这样计算的,正常使用部分每度0.
538元,阶梯部分每度0.
03元.
某用户家9月份正常部分用电量为x度,阶梯部分y度,请编程计算该用户9月份应该缴纳的电费.
从键盘输入x和y,输出应缴纳电费,保留2位小数.
Input输入x和y的值.
Output输出应缴纳的电费,保留2位小数.
SampleInput1010SampleOutput5.
68HINTSourceNBUOJ#include#includevoidmain(){doublex,y;scanf("%lf%lf",&x,&y);printf("%.
2lf\n",.
538*x+.
03*y);}1027存款利息TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2122|Solved:1060Description输入存款金额money、存期year和年利率rate,根据公式计算存款到期时的利息interest(税前).
公式如下:Input输入存款金额money、存期year和年利率rate.
Output输出到期时的利息,保留2位小数.
SampleInput100030.
0415SampleOutput129.
74HINT建议用doubleSourceNBUOJ#include#includevoidmain(){doublex,y,z;scanf("%lf%lf%lf",&x,&y,&z);printf("%.
2lf\n",x*pow((1+z),y)-x);}1028存款本息TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1116|Solved:827Description输入人民币存款年利率I和存款总额S,计算满一年后本息合计并输出.
Input输入年利率和存款总数.
Output计算满一年后本息合计,保留两位小数.
SampleInput0.
03100000SampleOutput103000.
00HINTSourceNBUOJ#includevoidmain(){doublex,y;scanf("%lf%lf",&y,&x);printf("%.
2lf\n",x*(1+y));}1029三位数的数位分离TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2259|Solved:1202Description从键盘输入一个任意的3位正整数,分别求出其个位、十位和百位上的数字.
Input输入任意的一个三位正整数.
Output依次输出个位、十位、百位上的数字.
以空格间隔,但最后一个数据的后面没有空格,直接换行.
SampleInput367SampleOutput763HINTSourceNBUOJ#includevoidmain(){intx;scanf("%d",&x);printf("%d%d%d\n",x%10,x/10-10*(x/100),x/100);}1030棋盘上的麦粒TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1652|Solved:736Description舍罕是古印度的国王,据说他十分好玩.
宰相依达尔为了讨好国王,发明了现今的国际象棋献给国王.
国王非常喜欢,决定嘉奖宰相,许诺满足宰相提出的任何要求.
宰相指着棋盘要求:"陛下,请您按棋盘的格子赏赐我一点小麦吧,第一个小格赏我1粒麦子,第二个小格赏我2粒,第三个小格赏4粒,以后每一小格都比前一个小格赏的麦子增加一倍,只要把棋盘上全部64个小格按这样的方法得到的麦子都赏赐给我,我就心满意足了".
国王听了宰相这个"小小"的要求,马上同意了.
但是在给宰相麦子时,国王发现他要付出的比自己想象的要多得多,于是进行了计算,结果令他大惊失色.
问题是:舍罕王的计算结果是多少粒麦子.
Input输入一个整数n代表棋盘的格子,该数字大于1且小于等于64.
如输入2,则表示有2个格子,第一个格子放1粒,第二个格子放2粒,则2个格子一共需要3粒麦子.
Output输出n个格子需要的麦粒数.
SampleInput64SampleOutput18446744073709551615HINT如果麦粒数sum如下定义:unsigned__int64sum;则计算完成后其输出形式为:printf("%I64u\n",sum);SourceNBUOJ#include#includevoidmain(){intn,i;unsigned__int64a,sum=0;scanf("%d",&n);for(i=1;ivoidmain(){intx,a,b,i,j=0;scanf("%d",&x);a=x;while(a>10){a/=10;j++;}j++;for(i=1;ivoidmain(){intx,a,b,i,j=0,s=0;scanf("%d",&x);a=x;while(a>10){a/=10;j++;}j++;for(i=1;i#includevoidmain(){intx,a,j=0;scanf("%d",&x);a=x;while(a>10){a/=10;j++;}x=x/pow(10,j);printf("%d\n",x);}1034任意长度整数的位数TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1496|Solved:758Description输入一个任意长度的正整数,求出它是几位数.
Input输入一个任意长度的正整数.
Output输出位数SampleInput0SampleOutput1HINTSourceNBUOJ#include#includevoidmain(){intx,a,j=0;scanf("%d",&x);a=x;while(a>10){a/=10;j++;}j++;printf("%d\n",j);}1035求整数的绝对值TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1782|Solved:1070Description输入一个整数,输出它的绝对值.
Input输入一个整数n.
Output输出该数的绝对值.
SampleInput-2SampleOutput2HINTSourceNBUOJ#include#includevoidmain(){intx;scanf("%d",&x);x=abs(x);printf("%d\n",x);}1036符号属性判断TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2945|Solved:1079Description从键盘输入任意数x,根据其符号属性,输出对应的y值.
Input输入x.
Output输出y的值.
SampleInput10SampleOutput1HINTx取浮点类型SourceNBUOJ#includevoidmain(){inty;doublex;scanf("%lf",&x);if(x>0)y=1;elseif(x==0)y=0;elsey=-1;printf("%d\n",y);}1037正数负数TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1475|Solved:895Description输入一个整数,判断该数是正数还是负数.
(不考虑数字0)Input输入整数n.
Output如果该数是正数就输出"positive",负数就输出"negative"(输出不含双引号).
SampleInput8SampleOutputpositiveHINTSourceNBUOJ#includevoidmain(){intx;scanf("%d",&x);if(x>0)printf("positive\n");elseif(xvoidmain(){intx;scanf("%d",&x);if(x%2!
=0)printf("odd\n");elseprintf("even\n");}1039奇数和与偶数和(1)TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1501|Solved:838Description输入正整数n,计算1~n中的奇数和以及偶数和并输出.
Input输入一个正整数n.
Output依次输出奇数和以及偶数和,各占一行.
SampleInput10SampleOutput2530HINTSourceNBUOJ#includevoidmain(){intx,i,a=0,b=0;scanf("%d",&x);for(i=1;ivoidmain(){intn,i,x,a=0,b=0;scanf("%d",&n);for(i=1;ivoidmain(){intx,y;scanf("%d",&x);if(x#includevoidmain(){intx;doubley;scanf("%d",&x);if(x>0)y=x*x-2;elsey=sqrt(5-x);printf("%.
2lf\n",y);}1043复杂分段函数TimeLimit:1000MS|MemoryLimit:32767KBSubmits:3119|Solved:1329Description输入浮点数x,计算并输出下面分段函数y的值(保留两位小数).
Input输入一个浮点数.
Output输出函数的值.
保留2位小数.
SampleInput10SampleOutput3.
16HINTSourceNBUOJ#include#includevoidmain(){doublex,y;scanf("%lf",&x);if(x>=0)y=sqrt(x);elsey=pow((x+1),2)+2*x+1/x;printf("%.
2lf\n",y);}1044第几象限TimeLimit:1000MS|MemoryLimit:32767KBSubmits:1815|Solved:1081Description从键盘输入2个整数x、y值表示平面上一个坐标点,判断该坐标点处于第几象限,并输出相应的结果.
假设坐标点不会处于x轴和y轴上,也不会处在原点上.
Input输入x,y值表示一个坐标点.
坐标点不会处于x轴和y轴上,也不会在原点.
Output输出对应的象限,用数字1,2,3,4分别对应四个象限.
SampleInput11SampleOutput1HINTSourceNBUOJ#include#includevoidmain(){intx,y,z;scanf("%d%d",&x,&y);if(x>0&&y>0)z=1;elseif(x0)z=2;elseif(x0&&y#includevoidmain(){intx,y;doubler;scanf("%d%d",&x,&y);r=sqrt(x*x+y*y);if(r#includevoidmain(){charc;scanf("%c",&c);if(c>='a'&&c='A'&&c#includevoidmain(){charc;scanf("%c",&c);if(c>='a'&&c='A'&&c#includevoidmain(){intc;scanf("%d",&c);if(c>=65&&c=97&&c#includevoidmain(){charc;scanf("%c",&c);if(c>=65&&c=97&&c=48&&c#includevoidmain(){charc;inti=0;while(getchar()!
='\n'){i++;}printf("%d\n",i);}1051字母个数统计TimeLimit:1000MS|MemoryLimit:32767KBSubmits:1792|Solved:925Description从键盘输入一行字符串(字符串长度小于等于1000),统计出其中的英文字母的个数.
以输入换行符作为结束.
Input输入一行字符串,以换行符结束.
Output输出字母的个数SampleInputHelloMr.
007,mynameis@#$%SampleOutput15HINTSourceNBUOJ#include#includevoidmain(){charc;inti=0;scanf("%c",&c);while(c!
='\n'){if(c>='a'&&c='A'&&c#includevoidmain(){charc;inti=0;scanf("%c",&c);while(c!
='\n'){if(c>='0'&&c#includevoidmain(){charc;inti=0,j=0,k=0,l=0;scanf("%c",&c);while(c!
='\n'){if(c>='a'&&c='A'&&c='0'&&c#includevoidmain(){charc,d;inti=0;scanf("%c",&c);while(c!
='\n'){d=c;scanf("%c",&c);if(c==d){printf("%c\n",c);i++;break;}}if(i==0)printf("No\n");}1055统计行数TimeLimit:1000MS|MemoryLimit:32767KBSubmits:699|Solved:206Description编写一个程序,要求统计输入文本的行数.
Input每行输入任意长度的字符串(每一行的字符串的长度小于等于1000),以输入仅由符号@构成的行作为结束,@所在的行不计入行数.
Output输出文本的行数.
SampleInputHelloworld!
IcomefromChina!
I'maboy!
@SampleOutput3HINTSourceNBUOJ#include#include#definen1000voidmain(){charstr[n];inti=0,v=0,j;gets(str);j=strlen(str);while(j!
=1||str[i]!
='@'){v++;gets(str);j=strlen(str);}printf("%d\n",v);}1056特定字符出现次数TimeLimit:1000MS|MemoryLimit:32767KBSubmits:474|Solved:298Description从键盘输入一个字符串(长度小于等于1000),以换行结束.
再输入一个特定字符ch,判断ch在字符串中的出现次数.
Input从键盘输入一个字符串,以换行结束.
再输入一个特定字符ch.
Output输出ch在字符串中的出现次数.
SampleInputTHISISATESTISampleOutput2HINTSourceNBUOJ#include#include#definen1000voidmain(){charstr[n],c;inti=0,v=0,j;gets(str);j=strlen(str);scanf("%c",&c);while(ivoidmain(){charc;scanf("%c",&c);while(c!
='\n'){if(c>='a'&&c='A'&&c\*此处可以没有#include\*#defineN1000voidmain(){charstr[N];inti=0;gets(str);while(str[i]!
='\0'){if(str[i]>='a'&&str[i]='A'&&str[i]voidmain(){inta;scanf("%d",&a);if(a>=60)printf("pass\n");elseprintf("failure\n");}1059简单成绩评级TimeLimit:1000MS|MemoryLimit:32767KBSubmits:1523|Solved:833Description对学生成绩(百分制)评等级,规则如下:[80,100]为A[60,79]为B[0,59]为CInput输入一个整数形式的百分制的成绩(0~100).
Output如果该成绩大于等于80则输出A,在60~79之间则输出B,小于60分则输出C.
SampleInput60SampleOutputBHINTSourceNBUOJ#includevoidmain(){inta;scanf("%d",&a);if(a>=80)printf("A\n");elseif(a>=60)printf("B\n");elseprintf("C\n");}1060成绩评级TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1824|Solved:1177Description在学生成绩管理中,成绩经常需要在百分制与等级制之间进行转换.
输入一个表示成绩的百分制分数,将其转换为对应的等级制并输出.
90分以上A80---89B70---79C60---69D60以下EInput输入一个整数表示百分制的成绩,保证输入的整数在0到100之内.
Output输出百分制转换后对应的五级制SampleInput95SampleOutputAHINTSourceNBUOJ#includevoidmain(){inta;scanf("%d",&a);if(a>=90)printf("A\n");elseif(a>=80)printf("B\n");elseif(a>=70)printf("C\n");elseif(a>=60)printf("D\n");elseprintf("E\n");}1061两数求大值TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1497|Solved:981Description从键盘输入任意两个整数,求出其中较大数的数值并输出.
Input输入两个整数.
Output输出较大数的数值.
SampleInput189SampleOutput18HINTSourceNBUOJ#includevoidmain(){inta,b,c;scanf("%d%d",&a,&b);c=a;if(b>c)c=b;printf("%d\n",c);}1062两整数排序TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1064|Solved:639Description从键盘输入两个整数x,y,按从小到大的顺序输出它们的值.
Input输入两个整数x,y.
Output按从小到大的顺序输出它们的值.
数据之间以空格间隔.
SampleInput2016SampleOutput1620HINTSourceNBUOJ#includevoidmain(){inta,b,c;scanf("%d%d",&a,&b);if(a>b){c=b;b=a;a=c;}printf("%d%d\n",a,b);}1063两字符比大小TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1518|Solved:864Description请编写一个程序,比较两个不相同字符间的大小(按ASCII码值比大小).
Input任意输入两个字符.
输入时两个字符间不加空格.
Output按ASCII码值从小到大输出这两个字符的内容.
输出字符间以空格间隔.
SampleInputBASampleOutputABHINTSourceNBUOJ#includevoidmain(){chara,b,c;scanf("%c%c",&a,&b);if(a>b){c=b;b=a;a=c;}printf("%c%c\n",a,b);}1064三数求大值TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2139|Solved:1161Description从键盘输入三个整数x,y,z,求出最大数的值.
Input输入三个整数x,y,z.
Output输出最大数的值.
SampleInput201618SampleOutput20HINTSourceNBUOJ#includevoidmain(){inta,b,c,d;scanf("%d%d%d",&a,&b,&c);d=a;if(b>d)d=b;if(c>d)d=c;printf("%d\n",d);}1065三整数排序TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2838|Solved:1098Description从键盘输入三个整数x,y,z,按从大到小的顺序输出它们的值.
Input输入三个整数x,y,z.
Output按从大到小的顺序输出它们的值.
数据之间以空格间隔.
SampleInput201618SampleOutput201816HINTSourceNBUOJ#includevoidmain(){inta,b,c,d,e,f;scanf("%d%d%d",&a,&b,&c);d=a;if(b>d)d=b;if(c>d)d=c;e=a;if(be)f=a;if(be)f=b;if(ce)f=c;printf("%d%d%d\n",d,f,e);}1066鸡兔同笼(2)TimeLimit:1000MS|MemoryLimit:32768KBSubmits:3175|Solved:821Description一个笼子里关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外).
已知鸡和兔的总数量为n,总腿数为m.
输入n和m,依次输出鸡的数目和兔的数目.
如果无解,则输出NOanswer.
Input输入整数n和m,分别表示鸡兔的总数量及总腿数.
Output依次输出鸡的数目和兔的数目.
如果无解,则输出NOanswer.
SampleInput516SampleOutput23HINTSourceNBUOJ#includevoidmain(){intm,n,x,y;scanf("%d%d",&n,&m);x=2*n-0.
5*m;y=0.
5*m-n;if(x>=0&&y>=0&&n==x+y)printf("%d%d\n",x,y);elseprintf("NOanswer\n");}1067夏季促销TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1075|Solved:659Description商场夏季促销,购物500元以下,不打折;购物500元(含)以上,95折;购物1000元(含)以上,9折;购物3000元(含)以上,85折;购物5000元(含)以上,8折.
根据消费金额,确定用户实际需要支付的数目.
Input输入消费金额.
Output输出用户实际需要支出的数目,保留两位小数.
SampleInput5100SampleOutput4080.
00HINTSourceNBUOJ#includevoidmain(){doublea;scanf("%lf",&a);if(a=500&&a=1000&&a=3000&&avoidmain(){intx,y=50;doubles;scanf("%d",&x);if(x>=30)y-=2;s=x*y;printf("%.
2lf\n",s);}1069飞船飞行情况TimeLimit:1000MS|MemoryLimit:32768KBSubmits:797|Solved:597Description在"神州号"程序中,需要判断飞船飞行状况.
当飞船速度继续加大时,飞船将达到第二宇宙、第三宇宙速度.
试编写程序,输入不同的飞船速度V,判断它的各种飞行状况,并按要求显示出来.
飞船速度V(单位km/s)范围如下:V大于等于7.
91且小于11.
19则输出1,表示飞船绕地球做匀速圆周运动;V大于等于11.
19且小于16.
67则输出2,表示(飞船离开地球的控制,围绕太阳转;V大于等于16.
67则输出3,表示飞船挣脱太阳引力飞出太阳系.
Input输入一个浮点数表示飞船速度(假设输入速度大于等于7.
91)Output输出该飞船的飞行情况SampleInput10.
00SampleOutput1HINTSourceNBUOJ#includevoidmain(){doublev;inta;scanf("%lf",&v);if(v>=7.
91&&v=16.
67)a=3;printf("%d\n",a);}10705和7的整倍数(1)TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1502|Solved:995Description判断输入的正整数是否既是5又是7的整倍数.
若是,则输出yes;否则输出noInput输入一个正整数.
Output如果是5和7的整倍数就输出yes,如果不是就输出noSampleInput35SampleOutputyesHINTSourceNBUOJ#includevoidmain(){intx;scanf("%d",&x);if(x%35==0)printf("yes\n");elseprintf("no\n");}10715和7的整倍数(2)TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2421|Solved:795Description输入正整数n,试编程输出n以内能被5和7整除的数.
(不包括n)Input输入一个整整数n.
Output输出n以内能被5和7整除的数.
每个数据后面都输出一个空格.
SampleInput100SampleOutput3570HINTSourceNBUOJ#includevoidmain(){intn,i;scanf("%d",&n);for(i=1;ivoidmain(){intn;scanf("%d",&n);if(n%4==0&&n%100!
=0||n%400==0)printf("yes\n");elseprintf("no\n");}1073计算某年某月的天数TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2229|Solved:1018DescriptionCoCo和Tom是一对好拍档,他们两个经常相互比赛记忆能力.
今天他们比赛的就是记每个月有几天,任何一方随意报出一个年份和月份,另一方需要快速报出这个月份有多少天,Mary做裁判,捧了一本万年历在旁边拼命翻,看他们回答的是否正确.
假如CoCo报的是2012年的2月,那么Tom需要快速回答29才算是正确的.
(小提示,这里面其实最麻烦的是闰年问题,其他都好解决的拉)Input从键盘输入两个整数表示年和月的数值.
如20122表示2012年的2月份.
Output输出该月的天数.
SampleInput20122SampleOutput29HINTSourceNBUOJ#includevoidmain(){intx,y,s;scanf("%d%d",&x,&y);if(y==1||y==3||y==5||y==7||y==8||y==10||y==12)s=31;elseif(y==4||y==6||y==9||y==11)s=30;elseif(y==2)if(x%4==0&&x%100!
=0||x%400==0)s=29;elses=28;printf("%d\n",s);}1074实际年龄TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2092|Solved:822Description输入一位学生的生日(年:y0,月:m0,日:d0);并输入当前的日期(年:y1,月:m1,日:d1);输出该生的实足年龄.
Input输入6个整型数据,用空格隔开,依次代表y0、m0、d0、y1、m1、d1的值.
Output输出该生的实足年龄.
SampleInput1990910200855SampleOutput17HINTSourceNBUOJ#includevoidmain(){intx0,y0,z0,x1,y1,z1,s;scanf("%d%d%d%d%d%d",&x0,&y0,&z0,&x1,&y1,&z1);s=x1-x0;if(y1voidmain(){inta,b;scanf("%d%d",&a,&b);if(a*a+b*b>100)printf("%d\n",(a*a+b*b)/100);elseprintf("%d\n",a*a+b*b);}1077员工薪水(1)TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1343|Solved:984Description某公司规定,每周工作40(含)小时内工资是30元/小时,超过40小时后超出部分按1.
5倍给付.
编写程序,根据输入工作时数计算雇员收入.
Input输入一个整数表示某一周工作的小时数.
Output输出员工这一周的薪水SampleInput41SampleOutput1245HINTSourceNBUOJ#includevoidmain(){intn,s;scanf("%d",&n);if(nvoidmain(){intn;doubles;scanf("%d",&n);if(nvoidmain(){inta,c;doubleb;scanf("%d",&a);c=a-3000;if(c==0)printf("0\n");elseif(cvoidmain(){intn,m,s=0;scanf("%d%d",&n,&m);if(n==0)s=0;elseif(n=5){s+=2;m-=5;}if(m!
=0)s+=2;printf("%d\n",s);}1081一元二次方程TimeLimit:1000MS|MemoryLimit:32768KBSubmits:4760|Solved:1653Description求以下一元二次方程的根.
Input输入方程系数a、b、c.
Output依次输出方程的根x1、x2(x1>x2).
若两个解相等,则只输出一个值.
(结果保留2位小数).
SampleInput132SampleOutput-1.
00-2.
00HINTSourceNBUOJ#include#includevoidmain(){doublea,b,c,x,y,p;scanf("%lf%lf%lf",&a,&b,&c);p=sqrt(b*b-4*a*c);x=(-b+p)/2.
0/a;y=(-b-p)/2.
0/a;if(x==y)printf("%.
2lf\n",x);elseif(x>y)printf("%.
2lf%.
2lf\n",x,y);elseprintf("%.
2lf%.
2lf\n",y,x);}1082求点的高度TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2661|Solved:1023Description假设有四个圆塔,圆心座标分别为(2,2)(-2,2)(-2,-2)(2,-2).
圆塔直径都为1,圆塔高50米,其他都为平地(高度为0).
要求给出任一坐标值(x,y),打印出该点的高度.
Input输入两个数x,y表示一个点的坐标.
Output输出该点的高度.
SampleInput-22SampleOutput50HINTdoubleSourceNBUOJ#include#includevoidmain(){doublex,y;scanf("%lf%lf",&x,&y);if((pow((x-2),2)+pow((y-2),2))voidmain(){intn;charstr[10][10]={"One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten"};scanf("%d",&n);if(n>=1&&nvoidmain(){doublea,b;charc;scanf("%lf%c%lf",&a,&c,&b);if(c=='+')printf("%.
2lf\n",a+b);elseif(c=='-')printf("%.
2lf\n",a-b);elseif(c=='*')printf("%.
2lf\n",a*b);elseif(c=='/')printf("%.
2lf\n",a/b);}1085运费计算TimeLimit:1000MS|MemoryLimit:32768KBSubmits:3174|Solved:1020Description某运输公司对用户按照路程计算每公里运费.
路程越远,每公里运费越低.
运费标准如下:路程(km)折扣s=300015%假设每公里每吨货物的基本运费为p元,货物重量为w吨,距离为s公里.
Input输入基本运费p(#includevoidmain(){doublep,w,s,q;scanf("%lf%lf%lf",&p,&w,&s);if(s=250&&s=500&&s=1000&&s=2000&&s#defineN3voidmain(){charstr[N];scanf("%s",&str);printf("%s\n",str);}1088字符串输入输出(2)TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1338|Solved:766Description输入任意长度的字符串(以换行结束),再原样输出.
Input输入任意长度的字符串(#include#defineN100voidmain(){charstr[N];inti,j;gets(str);j=strlen(str);for(i=0;i#includeintmain(){inti,m,n;intcount=0;scanf("%d%d",&m,&n);for(i=m;imain(){intm,n;scanf("%d",&n);m=(1+n)*n/2;printf("%d\n",m);}1091符号变化的整数数列求和TimeLimit:1000MS|MemoryLimit:32768KBSubmits:3137|Solved:1883Description编写程序,计算:m=1-2+3-4+n.
Input输入一个正整数n(voidmain(){intm,n,i;scanf("%d",&n);i=1;m=0;while(i1).
Input输入一个奇数n(voidmain(){inta,b;scanf("%d",&a);b=(1+a)*(a+1)/4;printf("%d\n",b);}1093连续数列求和TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1931|Solved:1431Description输入一个整数n,计算s=1+1+2+1+2+3+1+2+3+4+…+1+2+3+…+n.
Input输入一个整数n(voidmain(){intn,a=0,s=0,i;scanf("%d",&n);for(i=1;ivoidmain(){intn,i,s;scanf("%d",&n);s=0;i=0;while(ivoidmain(){intn,a=0,s=0,i;scanf("%d",&n);for(i=1;i#includevoidmain(){inta,n,b,s=0,i;scanf("%d%d",&n,&a);b=0;for(i=1;ivoidmain(){intn,i;doubles,a;scanf("%d",&n);s=0;i=1;while(ivoidmain(){intn,i;doubles=0,a;scanf("%d",&n);for(i=1;ivoidmain(){intn,i;doubles=0,b=2;scanf("%d",&n);for(i=1;ivoidmain(){intn,i;doublea,b,c,s,q;scanf("%d",&n);i=1;a=1;b=2;s=0;while(ivoidmain(){intn,i,j;doublee=1,x=1;scanf("%d",&n);for(i=1;ivoidmain(){intn,i;doubles1,s2=0,s3=0,a;scanf("%d",&n);s1=(1+n)*n/2;for(i=1;ivoidmain(){intn,i,s;scanf("%d",&n);i=1;s=1;while(ivoidmain(){intn,i,j,a=1,s=0;scanf("%d",&n);for(i=1;iintpanduan(intN){inta[12]={1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600};intb,i,c=11;b=N;while(b>0){for(i=c;i>=0;i--)if(a[i]intmain(){intN,i,x,n;i=1;x=0;scanf("%d",&N);while(i#includevoidmain(){intn,i=0;doubles=0;while(scanf("%d",&n)!
=(EOF)){s+=n;i++;}printf("%.
2lf\n",s/i);}1109多组整数求和TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1323|Solved:689Description计算多组整数的和.
Input输入包含多组测试数据.
每组测试数据首先包含一个整数N(表示有N个数),并跟随N个整数.
如3245表示有3个数需要求和,这3个数分别为2,4,5.
最后以EOF作为结束标记.
Output每行输出每组数据的和.
SampleInput41234512345^zSampleOutput1015HINTSourceNBUOJ#include#includevoidmain(){intN,a,i,s;while(scanf("%d",&N)!
=EOF){s=0;for(i=1;i#defineN10voidmain(){inti,a[N],s=0;for(i=0;ivoidmain(){inti,n,k=0;doublex,s=0;scanf("%d",&n);for(i=1;ivoidmain(){inta,sum=0,i=0;doubleave;scanf("%d",&a);while(a>=0){sum+=a;i++;scanf("%d",&a);}ave=(double)sum/i;printf("%.
1lf\n",ave);}1113正/负数统计TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2651|Solved:1332Description统计在所输入的N个整数中有多少个正数、多少个负数、多少个零.
Input先输入一个整数N,接着输入这N个整数.
Output按顺序输出正数,负数,零的个数.
输出各占一行.
个数为0的项目也要输出.
SampleInput20-5026842136984026-6-6-9635SampleOutput1442HINTSourceNBUOJ#includeintmain(){intN,i,x,y,z,n;i=1;x=0,y=0,z=0;scanf("%d",&N);while(i0)x++;elsey++;i++;}printf("%d\n%d\n%d\n",x,y,z);return0;}1114计算营业额TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1594|Solved:1066Description编程统计营业员一天的营业额.
Input输入若干个数据代表交易金额.
由于营业员一天完成的交易次数是不确定的,因此最后附加输入一笔0作为交易金额已全部输入结束的标志.
Output输出一天的营业额.
保留2位小数.
SampleInput100.
51200319098.
90SampleOutput4589.
40HINTSourceNBUOJ#includevoidmain(){doubles=0,a;scanf("%lf",&a);while(a!
=0){s+=a;scanf("%lf",&a);}printf("%.
2lf\n",s);}1115橘子问题TimeLimit:1000MS|MemoryLimit:32768KBSubmits:3450|Solved:1176Description已知市场上每个橘子卖0.
4元.
假设第1天买了2个橘子,从第2天开始,每天买的个数是前一天的两倍,直到买的橘子个数达到不超过N个的最大值.
求每天平均花多少钱.
Input输入整数N,N大于等于2.
Output输出平均每天花的钱.
保留2位小数SampleInput5SampleOutput0.
80HINTSourceNBUOJ#include#includevoidmain(){inti,N;doublea;scanf("%d",&N);for(i=1;(pow(2,i+1)-2)#includevoidmain(){intx,y,s,a;scanf("%d%d",&x,&y);s=pow(x,y);a=s%1000;printf("%d%d\n",s,a);}1117人口问题TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1583|Solved:1041Description1980年世界人口已达45亿,按年增长率1%计算,问从什么年份开始世界人口突破N亿.
(N是一个大于45亿的数)Input输入一个实数N,单位是亿.
如输入数字46.
2则表示46.
2亿.
Output输出对应的年份的值.
年份值整数.
SampleInput45.
95SampleOutput1983HINT建议用doubleSourceNBUOJ#include#includevoidmain(){doubleN,s=45;inti=0;scanf("%lf",&N);while(s#includevoidmain(){doubles=100,a=100;inti,n;scanf("%d",&n);for(i=1;iintmain(){inti,j,n;i=1,j=1;scanf("%d",&n);while(i#includevoidmain(){doublea;intn,i;scanf("%d",&n);for(i=1;i#includevoidmain(){doublea;intn,i;scanf("%d",&n);for(i=0;ivoidmain(){intm,i,j,b=0;inta[101];scanf("%d",&m);for(i=1;i#includevoidmain(){doublex,y;scanf("%lf",&x);y=1-x*x/2+pow(x,4)/24-pow(x,8)/40320;printf("%.
2lf\n",y);}1124斐波那契的兔子问题TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2414|Solved:1015Description1202年,意大利数学家斐波那契(Fibonacci)出版了他的《计算之书》,在书中提到了一个关于兔子繁殖的问题:如果一对兔子,过一个月之后长成大兔子,到第三个月就可以生下一对兔子并且以后每个月都生下一对兔子,而所生的一对小兔子也同样到一个月之后长成大兔子,到第三个月就可以生下一对小兔并且以后每个月都会生一对.
假如兔子都不死,问第n个月的时候兔子的总对数为多少Input输入一个整数n(0#includevoidmain(){intn,i;doublesum=0,x=1,y=0,t=0;scanf("%d",&n);for(i=2;ivoidmain(){inti=1,n;scanf("%d",&n);__int64a=1,b=1,t;while(iintmain(){intn,m,a,b,c,t=0,i;scanf("%d",&n);i=100;while(ivoidmain(){intn,i,s=0;scanf("%d",&n);for(i=1;iintPrime(inta){intc,d=0;if(a==0||a==1)return0;for(c=2;c1){printf("%d",i);n--;}printf("%d",i);}}}while(x!
=1);printf("\n");}}return0;}1129统计完全数TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2067|Solved:484Description编写程序,要求输出a到b之间的所有完全数.
所谓完全数是只指其真因子(除自身以外的因子)之和与它本身相等的正整数.
如6=1+2+3,6是一个完全数.
Input输入两个正整数a和b.
Output输出区间[a,b]之间的所有完全数.
每个完全数占一行.
SampleInput110000SampleOutput6284968128HINTSourceNBUOJ#includeintpanduan(intn){inti,s=0;for(i=1;i1),判断其是否为素数.
素数的定义为:一个大于1的整数,如果除了1和其自身以外没有其他正因子,则称此数为素数或质数.
Input输入一个整数n(n>1).
Output如果该数是素数就输出yes,如果不是就输出no.
SampleInput3SampleOutputyesHINTSourceNBUOJ#includevoidmain(){intn,i,j=0;scanf("%d",&n);for(i=2;i#includevoidmain(){intk1,k2,i,j,c=0,m=0;doubleb;scanf("%d%d",&k1,&k2);if(k1==1)k1=2;for(i=k1;ib)c++;}printf("%d\n",c);for(i=k1;ib){m++;if(m#includevoidmain(){inta,b,t,i,x,y;scanf("%d%d",&a,&b);if(a>=b)t=b;elset=a;for(i=t;i>=1;i--){if(a%i==0&&b%i==0)break;}x=i;y=a*b/i;printf("%d%d\n",x,y);}1133具有abcd=(ab+cd)^2性质的四位数TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1337|Solved:759Description求具有abcd=(ab+cd)^2性质的四位数.
比如,3025这个数具有一种独特的性质:将它平分为二段,即30和25,使之相加后求平方,即(30+25)^2,恰好等于3025本身.
根据输入求所有具有该性质的四位数abcd.
Input输入数据为K1、K2,表示所求四位数的数据范围在K1和K2之间.
(包含K1和K2,且K1和K2都在1000到9999之间,K2>K1)Output输出所有满足题目要求的四位数,每个输出数据后面换行(\n).
SampleInput20003500SampleOutput20253025HINTSourceNBUOJ#include#includevoidmain(){intk1,k2,i,a,b,c,d,x,y;scanf("%d%d",&k1,&k2);for(i=k1;ivoidmain(){intN,a,b,c,i,j,k,x,y,t=0;scanf("%d",&N);for(i=0;ivoidmain(){intM,N,s;scanf("%d%d",&M,&N);s=(N+1)*(M+1)*N*M/4;printf("%d\n",s);}1136蟠桃记TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1600|Solved:1011Description喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!
什么问题呢他研究的问题是蟠桃一共有多少个不过,到最后,他还是没能解决这个难题,呵呵^-^,你能帮他解决这个问题吗当时的情况是这样的:第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子.
聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢Input输入一个正整数n(0#includevoidmain(){intx,y,a;scanf("%d",&x);x--;y=3*pow(2,x)-2;printf("%d\n",y);}1137搬砖问题TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1573|Solved:641Description某工地需要搬运砖块,已知男搬4,女搬3,两个小孩抬1块.
现有N块砖和N个人,要求1次将所有砖搬完,请问需要男、女、小孩各几人Input输入一个正整数N表示人数和需要搬的砖数.
Output输出所有可能的男、女、小孩的人数.
若无解则输出Error.
SampleInput36SampleOutput3330HINTSourceNBUOJ#includevoidmain(){intN,i,j,k=0;scanf("%d",&N);for(i=0;iusingnamespacestd;intmain(){coutusingnamespacestd;intmain(){cout#includevoidmain(){chara[200];inti,j,k;while(gets(a)){j=0;k=strlen(a);for(i=0;ivoidmain(){inti;charstr[10];gets(str);for(i=0;str[i]!
='\0';i++){if(str[i]>='A'&&str[i]='a'&&str[i]='W'&&str[i]='w'&&str[i]#defineN10voidmain(){inti,j,a,n;scanf("%d",&n);for(i=1;ivoidmain(){inti,j,m,n;scanf("%d%d",&m,&n);inta[100][100];for(i=0;ivoidmain(){inti,j,a[3][3];doubleave,s;for(i=0;ica->bc->ba->cb->ab->ca->cHINTSourceNBUOJ#includevoidmove(charsource,chartarget){printf("%c->%c\n",source,target);}voidhanoi(intn,chara,charb,charc){if(n==1)move(a,c);else{hanoi(n-1,a,c,b);move(a,c);hanoi(n-1,b,a,c);}}voidmain(){intn;scanf("%d",&n);hanoi(n,'a','b','c');}1144回文数字TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1299|Solved:785Description给定一个数字字符串,判断它是否是回文数字.
例如:121,1221是回文数字,123不是回文数字.
Input输入一个数字字符串.
Output若是回文输出Yes,否则输出NoSampleInput123321SampleOutputYesHINTSourceNBUOJ#include#includevoidmain(){inti,a,t=0;charstr[1000];gets(str);a=strlen(str);if(a%2==0){for(i=0;i#includevoidmain(){charstr[100];inti,a,k=0;gets(str);a=strlen(str);for(i=0;iintf(inta){inti,b=1;for(i=1;ivoidmain(){inti;doublea[8],max,min,sum=0;for(i=0;ia[i])min=a[i];}sum=sum-max-min;printf("%.
2lf\n",sum/6);}1148数字字符出现频率TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1741|Solved:1006Description从键盘输入一行文本,统计其中数字字符0~9出现的频率并输出.
没有出现的不要显示.
Input从键盘输入一行文本.
以换行符结束.
Output输出统计结果.
每个数字的信息占一行,如"0:2"表示数字字符0出现了2次.
SampleInputHelloNo007.
SampleOutput0:27:1HINT输出内容中:0:2表示数字字符0出现了2次7:1表示数字字符7出现了1次SourceNBUOJ#includevoidmain(){intx=0,a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;charstr[1000];gets(str);while(str[x]!
='\0'){if(str[x]=='0')a++;if(str[x]=='1')b++;if(str[x]=='2')c++;if(str[x]=='3')d++;if(str[x]=='4')e++;if(str[x]=='5')f++;if(str[x]=='6')g++;if(str[x]=='7')h++;if(str[x]=='8')i++;if(str[x]=='9')j++;x++;}if(a!
=0)printf("0:%d\n",a);if(b!
=0)printf("1:%d\n",b);if(c!
=0)printf("2:%d\n",c);if(d!
=0)printf("3:%d\n",d);if(e!
=0)printf("4:%d\n",e);if(f!
=0)printf("5:%d\n",f);if(g!
=0)printf("6:%d\n",g);if(h!
=0)printf("7:%d\n",h);if(i!
=0)printf("8:%d\n",i);if(j!
=0)printf("9:%d\n",j);}或:#includevoidmain(){charc;inti;inta[10]={0};while((c=getchar())!
='\n'){if(c>='0'&&cvoidmain(){inti;doublea[5]={0};doublesum=0;for(i=0;ivoidmain(){charstr1[1000],str2[1000],str3[1000];gets(str1);gets(str2);gets(str3);inti,a=0,b=0,c=0;for(i=0;str1[i]!
='\0';i++){if(str1[i]>='A'&&str1[i]='a'&&str1[i]='0'&&str1[i]='A'&&str2[i]='a'&&str2[i]='0'&&str2[i]='A'&&str3[i]='a'&&str3[i]='0'&&str3[i]#defineN10voidmain(){inta[N],i,x,c=0,b=0;for(i=0;ivoidmain(){inta[10];inti,b,c;for(i=0;ia[i])c=a[i];}printf("%d\n%d\n",b,c);}1153一维数组的插入TimeLimit:1000MS|MemoryLimit:32768KBSubmits:4416|Solved:786Description数组a中的10个数按升序排列.
从键盘输入一个待插入数key,将其插入到数组中,使数组依然保持升序.
Input先从键盘输入10个按升序排列的整数,然后再输入一个待插入的数据key.
Output输出插入后的对应结果,要求依然升序排列.
每个数据后面都有空格.
SampleInput1357911131517196SampleOutput1356791113151719HINTSourceNBUOJ#include#includevoidmain(){inti,m,t;inta[1000];for(i=0;i=m){t=i;break;}elset=10;}for(i=10;i>t;i--)a[i]=a[i-1];a[t]=m;for(i=0;iintmain(){inta[5];inti,j,k;for(i=0;i#defineN10voidmain(){inti,a[N];for(i=0;i=1;i--)printf("%d",a[i]);printf("%d\n",a[i]);}1156简单一维数组排序TimeLimit:1000MS|MemoryLimit:32768KBSubmits:3876|Solved:1496Description期末考试结束了,陈老师找到集训队的同学,希望帮忙开发一个成绩排序的系统.
这个应该难不倒集训队员的,先做一个内部小测试吧.
随意输入10个学生的成绩,按从高到低的序列显示.
Input输入10个学生的成绩Output输出从高到低的排序结果.
SampleInput908070605091721820SampleOutput919080727060501820HINT最后一个数据的后面不需要空格,直接加换行符SourceNBUOJ#include#defineN10intmain(){inta[N];inti,j,x,t;for(i=0;ia[x])x=j;}if(x!
=i){t=a[i];a[i]=a[x];a[x]=t;}}for(i=0;i#defineN10intmain(){inta[N];inti,j,x,y;for(i=0;ia[y])y=j;}}printf("%d%d\n%d%d\n",a[y],y,a[x],x);return0;}1158有序数组的查找TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2651|Solved:1279Description已知一维数组中的10个元素各不相同,但已按升序排列.
查找数组中是否存在值为key的数组元素.
如果有,输出相应的下标,否则输出notfound.
你有什么好方法吗Input先从键盘输入10个升序排列的整数,然后再输入一个待查找的数据key.
Output输出对应结果.
若不存在则输出notfound.
SampleInput679101618203514115021SampleOutputnotfoundHINTSourceNBUOJ#includevoidmain(){inta[10];inti,k,x,y=0;for(i=0;ivoidmain(){charstr[1000];gets(str);inti,j;inta[26]={0};charc,b;for(i=0;str[i]!
='\0';i++){c='A',b='a';for(j=0;jvoidmain(){inti,j;inta[3][4];for(i=0;ivoidmain(){inti,j,k;inta[3][4];for(i=0;ivoidmain(){inti,j,k,c=0,b=0;inta[3][4];for(i=0;ivoidmain(){inta[100],b[100];intk=0,i,j,l;scanf("%d",&l);for(i=0;ivoidmain(){inta[100][100];inti,j,n,s=0;scanf("%d",&n);for(i=0;i#defineN15voidmain(){inta[N][N];inti,j,n,s=0;scanf("%d",&n);for(i=0;ivoidmain(){intn,i,j;chara='A';scanf("%d",&n);for(i=1;ivoidmain(){inti,j,index,m;doublea[10]={.
1,.
2,.
5,1,2,5,10,20,50,100},s=0;scanf("%d%d",&index,&m);while(index>=0&&m>=0){for(i=0;i#includevoidmain(){intn,m,i,j=0;inta[1000],b[1000];scanf("%d",&n);for(i=0;i#defineN20voidmain(){inta[N][N],m,n,i,j;scanf("%d%d",&m,&n);for(i=0;i#includevoidmain(){intn,i,j,t,flag=1,a[1000];scanf("%d",&n);for(i=0;ia[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;flag=1;}}}for(i=0;i#defineN100voidmain(){intn,a[N];inti,j,b;ints=0;scanf("%d",&n);for(i=0;ia[i+1])b=a[i];elseb=a[i+1];for(j=a[i];jvoidmain(){intx,a[100],i=0,j;scanf("%d",&x);while(x>0){a[i]=x%8;x/=8;i++;}i--;for(j=i;j>=0;j--)printf("%d",a[j]);printf("\n");}1173进制转换(1)TimeLimit:1000MS|MemoryLimit:32768KBSubmits:467|Solved:196Description输入一个十进制正整数,把这个数转换为n进制.
Input输入两个整数num和n,num表示要转换的数,n表示要转换成的进制.
如102表示将数字10转换成二进制.
(nvoidmain(){intx,n,a[100],i=0,j;scanf("%d%d",&x,&n);while(x>0){a[i]=x%n;x/=n;i++;}i--;for(j=i;j>=0;j--)printf("%d",a[j]);printf("\n");}1174哥德巴赫猜想TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1335|Solved:687Description所谓哥德巴赫猜想是指,任一大于2的偶数都可以写成两个质数之和(严格说来,这是欧拉的等价描述版本).
例如6=3+3,8=3+5,.
.
.
,18=7+11.
迄今为止,这仍然是一个著名的世界难题,被誉为数学王冠上的明珠.
试编写程序,验证任一大于2的偶数都能写成两个质数之和.
(可能有多种情况,请输出两数差最大的那组)Input输入一个大于2的偶数N.
Output输出两个质数和的形式,小的质数在前,大的质数在后.
SampleInput16SampleOutput16=3+13HINTSourceNBUOJ#includeintprime(intn){inta;for(a=2;a#includevoidmain(){inti;charstr[600],k;gets(str);k=str[0];for(i=0;str[i]!
='\0';i++)if(k#includevoidmain(){charstr[1000],c;inti=0,num=0,word=0;gets(str);for(;(c=str[i])!
='\0';i++)if(c==''||c=='\t')word=0;elseif(word==0){word=1;num++;}printf("%d\n",num);}1177交换最小数TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1218|Solved:540Description输入n(n#includevoidmain(){intn,i,x,y,t;inta[100];scanf("%d",&n);for(i=0;ia[i]){x=a[i];y=i;}}t=a[0];a[0]=x;a[y]=t;for(i=0;ivoidmain(){inta[100],b[100],i,j,k,m=0,n,flag1=0,flag2;scanf("%d",&n);for(i=0;ivoidmain(){intn,i;doublex,y,s=0;doublea[1000];scanf("%d",&n);for(i=0;ia[i])y=a[i];}s=s-x-y;printf("%.
2lf\n",s/(n-2));}1180魔方阵TimeLimit:1000MS|MemoryLimit:32768KBSubmits:196|Solved:96Description输出魔方阵,所谓魔方阵就是指这样的方阵,它的每一行每一列和对角线之和都相等,例如,三阶魔方阵为816357492要求输出由1—n^2之间的自然数构成的魔方阵.
Input输入该方阵的阶数n(n#defineN15voidmain(){inta[N][N];intn,i,j,r;scanf("%d",&n);for(i=0;ivoidmain(){intn,m,i,j,k,lie,a[100][100],b[100],x=0,flag,y=0;scanf("%d%d",&n,&m);for(i=0;ia[j][lie])flag=1;if(flag==0){b[x]=k;x++;y=1;}}if(y==1){k=b[0];for(i=0;ivoidmain(){charstr[100];inti=0;gets(str);while(str[i]!
='\0'){i++;}printf("%d",i);puts(str);}1183连接字符串TimeLimit:1000MS|MemoryLimit:32768KBSubmits:2533|Solved:922Description连接2个字符串(长度都不超过100),不要用strcat函数.
Input输入2个字符串,每个字符串以换行符结束.
Output输出连接好的字符串.
SampleInputCountrysideSampleOutputCountrysideHINTSourceNBUOJ#include#includevoidmain(){inta,b,i=0,j;charstr1[100],str2[100],str3[200];gets(str1);gets(str2);strcpy(str3,str1);a=strlen(str1);b=strlen(str2);for(j=0;str2[j]!
='\0';j++,i++){str3[a+i]=str2[j];}for(i=0;i#includevoidmain(){charstr1[10],str2[10];gets(str1);gets(str2);if(strcmp(str1,str2)#includevoidmain(){intn,i,j,k;charstr[100][100],t[100];scanf("%d",&n);getchar();for(i=0;iZa—>zB—>Yb—>yC—>Xc—>x即把第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母的字符保持不变.
Input输入已经按上述方式加密的电文(电文的长度不超过1000),要求输出其原文,其中可能有空格.
Output输出电文的原文.
SampleInputRdrooerhrgXsrmzmvcgdvvp.
SampleOutputIwillvisitChinanextweek.
HINTSourceNBUOJ#includevoidmain(){charstr[1000];gets(str);inti;for(i=0;str[i]!
='\0';i++){if(str[i]>='A'&&str[i]='a'&&str[i]voidmain(){charstr[1000];inti=0;gets(str);while(str[i]!
='\0'){if(str[i]>='0'&&str[i]#includevoidmain(){intn,m,i,j;intstr1[1000],str2[1000];scanf("%d%d",&n,&m);for(i=0;in-1)j=j-n;str2[j]=str1[i];}for(i=0;ivoidmain(){inti;charc[200];while(gets(c)!
=NULL){for(i=0;c[i]!
='\0';i++){if(c[i]=='1')c[i]='0';elseif(c[i]=='0')c[i]='1';}puts(c);}}1190C语言合法标识符TimeLimit:1000MS|MemoryLimit:32768KBSubmits:922|Solved:322Description输入一个字符串,判断其是否是C的合法标识符.
Input输入一个长度不超过50的字符串.
Output如果输入数据是C语言的合法标识符,则输出yes,否则,输出no.
SampleInputfi8x_aSampleOutputyesHINTSourceNBUOJ#includevoidmain(){charstr[50];inti,k=1;gets(str);if((str[0]>='a'&&str[0]='A'&&str[0]='a'&&str[i]='A'&&str[i]='0'&&str[i]voidmain(){inta[3][4];inti,j,k;for(i=0;i#definesize1000voidmain(){intperson[size];inti,j;intarrayLen;intstart=0,overNum=3;intdeleNum;inttotal;scanf("%d",&arrayLen);for(i=0;ivoidmain(){intn,m,k,a[50],i,t;scanf("%d%d%d",&n,&m,&k);for(i=0;ivoidmain(){intstr1[50],str2[50];intn,i,j=0;scanf("%d",&n);for(i=0;i#includevoidmain(){intN,a;doublex,y;y=sqrt(5);scanf("%d",&N);while(N!
=0){scanf("%d",&a);x=(pow((1+y)/2,a)-pow((1-y)/2,a))/y;printf("%.
0lf\n",x);N--;}}1196骨牌铺放TimeLimit:1000MS|MemoryLimit:32768KBSubmits:352|Solved:111Description在2*n的一个长方形方格中,用一个1*2的骨牌铺满方格,输入n,输出铺放方案的总数.
例如n=3时,为2*3方格,骨牌的铺放方案有三种,如下图:Input输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2*n.
Output对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行.
SampleInput132SampleOutput132HINT_int64SourceNBUOJ#include#includevoidmain(){inta;doublex,y;y=sqrt(5);while(scanf("%d",&a)!
=EOF){a++;x=(pow((1+y)/2,a)-pow((1-y)/2,a))/y;printf("%.
0lf\n",x);}}1197平面分割TimeLimit:1000MS|MemoryLimit:32768KBSubmits:396|Solved:205Description我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.
比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示.
Input输入数据的第一行是一个整数C,表示测试实例的个数,然后是C行数据,每行包含一个整数n,代表折线的数目.
Output对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行.
SampleInput212SampleOutput27HINTSourceNBUOJ#includevoidmain(){intc,n;scanf("%d",&c);while(c!
=0){scanf("%d",&n);printf("%d\n",2*n*n-n+1);c--;}}1198今天星期几TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1727|Solved:667Description输入一个正整数表示一个星期中的某一天,若此数字在[1,7]内,则输出对应英文星期名,否则表示输入错误,例如,输入2,程序输出"Tuesday",输入"16",程序输出"Illegalday".
Input输入一个正整数a表示星期几Output这一天对应的英文星期名SampleInput2SampleOutputTuesdayHINTSourceNBUOJ#includevoidmain(){intn;scanf("%d",&n);switch(n){case1:printf("Monday\n");break;case2:printf("Tuesday\n");break;case3:printf("Wednesday\n");break;case4:printf("Thursday\n");break;case5:printf("Friday\n");break;case6:printf("Saturday\n");break;case7:printf("Sunday\n");break;default:printf("Illegalday\n");break;}}1199判断字符串类型TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1691|Solved:1022Description输入一个字符串,其中只能包括数字或字母.
对应输入的字符串,输出它的类型.
如果是仅由数字构成的那么输出digit,如果是仅由字母构成的那么输出character,如果是由数字和字母一起构成的输出mixed.
Input输入一个字符串,长度不超过100,且字符串中只能包括数字或大、小写字母.
Output输出对应的类型.
SampleInputSun2009SampleOutputmixedHINTSourceNBUOJ#includevoidmain(){charstr[100];inti=0,j=0,k=0;gets(str);while(str[i]!
='\0'){if(str[i]>='0'&&str[i]='a'&&str[i]='A'&&str[i]voidmain(){inti,j=0;doublea[10],s=0;for(i=0;i0){j++;s+=a[i];}}printf("%.
2lf\n",s/j);}1201输出最短字符串TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1408|Solved:645Description输入五个字符串,输出其中最短的字符串.
若长度相同则输出出现较早的那一个.
Input输入五个字符串Output输出其中最短的字符串.
SampleInputHeeFiFdhiAiFdisSampleOutputFiHINT数组长度开到1000SourceNBUOJ#include#includevoidmain(){charstr1[1000],str2[1000],str3[1000],str4[1000],str5[1000],str6[1000];gets(str1);gets(str2);gets(str3);gets(str4);gets(str5);strcpy(str6,str1);if(strlen(str2)voidmain(){inti,b[1000],l=0;chara[1000],c;gets(a);scanf("%c",&c);for(i=0;a[i]!
='\0';i++)if(c==a[i]){b[l]=i+1;l++;}printf("%d\n",l);for(i=0;i#includevoidmain(){inti,j,a;charstr[1000];gets(str);scanf("%d",&j);a=strlen(str);for(i=j;str[i]!
='\0';i++)str[i-1]=str[i];for(i=0;i#includevoidmain(){intn,m,i,l;charstr[1000];scanf("%d%d",&n,&m);getchar();gets(str);l=strlen(str);for(i=n+m-1;str[i-1]!
='\0';i++)str[i-m]=str[i];puts(str);}1205梯形面积TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1290|Solved:834Description已知梯形上底和下底分别为x和y,高为h,求梯形面积.
Input输入x、y和h.
(双精度类型)Output输出梯形面积(保留2位小数)SampleInput10205SampleOutput75.
00HINTSourceNBUOJ#includevoidmain(){doublex,y,h,s;scanf("%lf%lf%lf",&x,&y,&h);s=(x+y)*h/2;printf("%.
2lf\n",s);}1206水费问题TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1177|Solved:830Description为了加强居民的节水意识,某地区制定了以下生活用水收费标准:每户每月用水未超过7吨时,每吨收费1.
0元,并加收0.
2元每吨的城市污水处理费;用水若超过7吨(含7吨),则每吨收费1.
5元,并加收0.
4元每吨的城市污水处理费.
输入用水量并计算应交水费.
(注:非分段计费)Input用水量.
(采用浮点类型)Output应交水费.
(保留2位小数)SampleInput7SampleOutput13.
30HINTSourceNBUOJ#includedoubleTD(doublex){doubles;if(x=0)s=1.
2*x;elses=1.
9*x;returns;}voidmain(){doublex,s;scanf("%lf",&x);s=TD(x);printf("%.
2lf\n",s);}1207读了几页书TimeLimit:1000MS|MemoryLimit:32768KBSubmits:599|Solved:497Description小玲读课外书,第一天读了x页,以后每天要比前一天多读m页,小玲共读了n天,问小玲共读了多少页Input输入x、m和n.
Output输出小玲n天共读了多少页SampleInput1267SampleOutput210HINTSourceNBUOJ#includevoidmain(){intx,m,n,a,i,s=0;scanf("%d%d%d",&x,&m,&n);a=x;for(i=1;i#includevoidmain(){doublea,b;charc;scanf("%lf%c%lf",&a,&c,&b);if(c=='+')printf("%.
2lf\n",a+b);elseif(c=='-')printf("%.
2lf\n",a-b);elseif(c=='*')printf("%.
2lf\n",a*b);elseif(c=='/')printf("%.
2lf\n",a/b);elseif(c=='+')printf("%.
2lf\n",a+b);elseif(c=='^')printf("%.
2lf\n",pow(a,b));elseprintf("Error\n");}1209幂之和TimeLimit:1000MS|MemoryLimit:32768KBSubmits:960|Solved:528Description给定一个n位整数(n≥3),判断它的每个位上的数字的n次幂之和是否等于它本身.
例如:3位数153(此时n=3),1^3+5^3+3^3=1534位数8208(此时n=4),8^4+2^4+0^4+8^4=8208Input键盘输入一个整数xOutput若x符合条件则输出"Yes",否则输出"No".
输出不包含双引号.
SampleInput92727SampleOutputYesHINTSourceNBUOJ#include#includevoidmain(){intx,a[100],i,n,s=0,b;scanf("%d",&x);b=x;for(i=0;x>=1;i++){a[i]=x%10;x/=10;}n=i;for(i=0;iintfun(intx){inti,j,d;for(i=x/4;i>=0;i--){for(j=(x-4*i)/5;j>=0;j--){d=x-4*i-5*j;if(d%6==0){printf("%d%d%d\n",d/6,j,i);return1;}}}if(i==0&&j==0&&x%6!
=0)printf("NoAnswer\n");return0;}voidmain(){intn;scanf("%d",&n);fun(n);}1211还是鸡兔同笼TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1704|Solved:830Description一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外).
已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物.
Input第一行是测试数据的组数n,后面跟着n行输入.
每组测试数据占一行,每行包含一个正整数a,代表笼子里面脚的总数.
Output输出包含n行,每行对应一个输入,包含2个正整数,第一个是最少的动物数,第二个是最多的动物数.
如果没有满足要求的答案,则输出两个0.
SampleInput2320SampleOutput00510HINTSourcePOJ#includevoidmain(){intn,max,min,a,i,j;scanf("%d",&n);for(i=0;i=4;j++)a-=4;if(a==2)min=j+1;elseif(a==0)min=j;}printf("%d%d\n",min,max);}}1212小于某数的整数和TimeLimit:1000MS|MemoryLimit:32768KBSubmits:430|Solved:351Description给定一个正整数a,以及另外的5个正整数,请问:这5个正整数中,小于a的那些整数的和是多少Input先输入一个正整数a,再输入另外5个正整数.
Output计算这5个整数中,小于a的那些整数的和是多少,输出结果.
SampleInput10789112SampleOutput26HINTSourceNBUOJ#includevoidmain(){inta,b,c=0,i=1;scanf("%d",&a);while(i#includeintfun(intx){ints=0,i;for(i=1;ivoidmain(){inti,j,n,x;scanf("%d",&n);x=(n+1)/2;for(i=0;i=1;j--)printf("*");printf("\n");}}1215小神探的小问题TimeLimit:1000MS|MemoryLimit:32768KBSubmits:745|Solved:480Description小神探CoCo在某次案件调查中需要研究一些地图,但是其中一些地图使用公里为单位,而另一些使用英里为单位.
假设CoCo希望全部采用公里计量,你可以帮她写出转换程序吗已知1英里等于1.
609公里.
Input输入以英里表示的距离.
Output输出以公里表示的距离,结果保留两位小数.
SampleInput10SampleOutput16.
09HINTSourceNBUOJ#includevoidmain(){doublea;scanf("%lf",&a);printf("%.
2lf\n",a*1.
609);}1216冰箱的温度TimeLimit:1000MS|MemoryLimit:32768KBSubmits:862|Solved:652Description夏天用电高峰时容易断电,请编写程序预测断电一段时间以后冰箱内的温度T(°C),假设该温度T可由以下公式计算得到结果:T=4t2/(t+2)-20断电后所经过的时间t是给定的.
Input从键盘输入断电后经过的时间t.
Output输出断电t小时后冰箱内的温度,保留2位小数.
SampleInput2.
5SampleOutput-14.
44HINT浮点数建议用doubleSourceNBUOJ#includevoidmain(){doublet,T;scanf("%lf",&t);T=4*t*t/(t+2)-20;printf("%.
2lf\n",T);}1217超市硬币处理机TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1342|Solved:436Description超市前放置了一个硬币处理机,可以帮你把零钱转换为存款单.
在实际应用中,机器中将有相应装置自动识别并计算你的零钱的数目,但是我们现在只能先进行一个手工的小实验,由你自己输入每种硬币的数目,然后编写程序将其转换成存款单.
Input依次输入1元、5角、1角的零钱的个数.
假如输入三个整数31025,则表示有3个1元硬币、10个5角硬币和25个1角的硬币.
Output输出存单金额,如对上例的输入,输出为Dollars=10Change=50表示存单上的整数金额为10元,零钱金额为50分.
即要求Dollars后显示的是**元的信息,Change后面显示的是**分的信息.
SampleInput3010SampleOutputDollars=4Change=0HINTSourceNBUOJ#includevoidmain(){inta,b,c,s2=0;doubles1=0;scanf("%d%d%d",&a,&b,&c);s1=a+.
5*b+.
1*c;s2=a+.
5*b+.
1*c;printf("Dollars=%d\nChange=%.
0lf\n",s2,(s1-s2)*100);}1218正方形还是圆形TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1724|Solved:941Description编写包含分支结构的交互程序,首先从键盘读入一个浮点数a,然后再读入一个小写字母(s或c),如果读入的字母是s,则计算并输出正方形面积(此时a作为边长);如果读入的字母是c,则计算并输出圆面积(此时a作为半径).
Input输入一个浮点数和一个小写字母(s或c),假设不会出现其他字母.
数字和字母紧挨着输入,中间不要加空格.
Output根据输入的字母为s或c,决定输出正方形面积或是圆面积,保留2位小数.
SampleInput2sSampleOutput4.
00HINT圆周率取3.
14.
SourceNBUOJ#include#definePI3.
14voidmain(){doublea;doubley;charc;scanf("%lf%c",&a,&c);switch(c){case's':y=a*a;break;case'c':y=PI*a*a;break;}printf("%.
2lf\n",y);}1219厘米到英寸的转换TimeLimit:1000MS|MemoryLimit:32768KBSubmits:674|Solved:410Description写一个程序来显示厘米到英寸的转换表,表中的最小和最大厘米数是输入值(为整数),表格中给出以10厘米为间隔的转换.
1厘米等于0.
3937英寸.
Input输入两个整数t1和t2表示表中的最小值和最大值.
t2>t1.
Output输出[t1,t2]之间以10厘米为间隔的厘米到英寸的转换表.
SampleInput150SampleOutput10.
39114.
33218.
273112.
204116.
14HINTSourceNBUOJ#includevoidmain(){inta,b,c;scanf("%d%d",&a,&b);c=a;for(c=a;cy=(x-40)*5+40(x>40)编写程序计算应交金额(元).
Input输入行李的重量x(整数).
Output输出应交的金额.
SampleInput40SampleOutput40HINTSourceNBUOJ#includevoidmain(){intx,y;scanf("%d",&x);if(x>=0&&xvoidmain(){intn,i=1,j=1,k=1;scanf("%d",&n);for(k=1;k#includevoidmain(){intN,i,j,k;scanf("%d",&N);k=sqrt(N);for(i=1;i#includevoidmain(){intn,i,a,b,c,s=1;scanf("%d",&n);for(i=1;i=1000)s=s-(s/1000)*1000;}a=s/100;b=s/10-10*(s/100);c=s%10;if(a==0&&b!
=0)printf("%d%d\n",b,c);elseif(a==0&&b==0)printf("%d\n",c);elseif(a!
=0)printf("%d\n",s);}1224哥德巴赫猜想(2)TimeLimit:1000MS|MemoryLimit:32768KBSubmits:577|Solved:223Description所谓哥德巴赫猜想,就是指任何一个大于2的偶数,都可以写成两个素数的和.
现在输入一个偶数,要求寻找两个素数,使其和等于该偶数.
由于可能有多组素数对满足条件,所以本题要求输出两数差最小的那两个素数.
Input输入一个偶整数M,M大于2.
Output对于每个偶数,输出两个彼此最接近的素数,并且其和等于该偶数.
(输出时两个素数小的在前,大的在后).
SampleInput20SampleOutput713HINTSourceNBUOJ#include#includeintsushu(intx){inti,y;y=sqrt(x);for(i=2;i=1;i--){if(sushu(i)==1&&sushu(x-i)==1){printf("%d%d\n",i,x-i);break;}}}voidmain(){inta;scanf("%d",&a);fun(a);}1225计算献血量TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1131|Solved:672Description志愿者献血:根据献血者性别和体重判断合适的献血量.
对于男性,体重70公斤(含)以上,献血250ml,70公斤以下200ml.
对于女性,体重60公斤(含)以上,献血180ml,60公斤以下150ml.
请根据输入的体重和性别,输出合适的献血量.
Input输入一个数字代表体重,一个字母代表性别.
其中用大写字母M代表男性,大写字母F代表女性.
小写字母无效.
Output输出合适的献血量(单位默认为ml).
SampleInput样例1输入:80M//注意:输入时,字符和数字之间不需要空格样例2输入:55FSampleOutput样例1输出:250样例2输出:150HINT单组输入、单组输出.
SourceNBUOJ#includevoidmain(){doublex;ints;charc;scanf("%lf%c",&x,&c);if(c=='M'){if(x>=70)s=250;elses=200;}elseif(c=='F'){if(x>=60)s=180;elses=150;}printf("%d\n",s);}1226绘制字符正方形(简易版)TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1679|Solved:798Description绘制字符正方形,输入正方形边长n和一个填充字符,绘制出一个正方形图案.
Input输入正方形边长n和填充字符(填充字符不会出现数字).
如,输入4*,表示需要输出4行4列的由符号*组成的图案.
Output输出由填充字符组成的边长为n的正方形.
SampleInput4*SampleOutput****************HINTSourceNBUOJ#includevoidmain(){intx,i,j;charc;scanf("%d%c",&x,&c);for(j=1;jK1.
Output求[k1,k2]之间所有数字之和为5的整数.
输出所有符合条件的数,每个数占1行.
SampleInput100200SampleOutput104113122131140HINTSourceNBUOJ#includevoidmain(){intx,y,i,a,b,c;scanf("%d%d",&x,&y);for(i=x;ivoidmain(){inta[12]={31,28,31,30,31,30,31,31,30,31,30,31},i,m,d,s=0;scanf("%d%d",&m,&d);for(i=0;ivoidmain(){inti,n,l=0;scanf("%d",&n);for(i=1;ivoidmain(){inta,b,c,d,t;scanf("%d%d%d%d",&a,&b,&c,&d);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("%d%d%d%d\n",d,c,b,a);}1231统计闰年(1)TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1015|Solved:533Description计算出从2000年开始X年(含2000和2000+X)之间的闰年并输出.
Input输入整数x.
Output输出属于闰年的年份,每个年份一行,输出后换行.
SampleInput50SampleOutput2000200420082012201620202024202820322036204020442048HINTSourceNBUOJ#includevoidmain(){intx,i;scanf("%d",&x);for(i=2000;ivoidmain(){inta,b;scanf("%d%d",&a,&b);if(a==0&&b==1||a==1&&b==2||a==2&&b==0)printf("Win\n");elseprintf("Lose\n");}1233勤劳的蚂蚁TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1638|Solved:828Description有两只勤劳的蚂蚁在准备食物,为了自我激励一下,它们打算开展比赛,看谁在一段时间内准备的食物多一些.
你能帮忙做个裁判吗,来统计一下哪只蚂蚁准备得更加多一些Input输入有若干行,每行2个数字,第一个整数表示蚂蚁(1表示1号蚂蚁,2表示2号蚂蚁,不会出现其他数字).
第二个整数表示该蚂蚁带回的食物数量,假设该数据都在合法范围内.
当输入两个数字都为0(即00)时表示输入结束.
Output输出拖回食物多的蚂蚁的编号和食物总数量.
如果相同,输出"equal"(输出不包含双引号).
输出后换行.
SampleInput1229172611201221100SampleOutput226HINTSourceNBUOJ#includevoidmain(){inta,b,x=0,y=0;scanf("%d%d",&a,&b);while((a!
=0&&b!
=0)||(a!
=0&&b==0)||(a==0&&b!
=0)){if(a==1)x+=b;if(a==2)y+=b;scanf("%d%d",&a,&b);}if(x>y)printf("1%d\n",x);elseif(xvoidmain(){inta[4],i,k=1;for(i=0;ivoidmain(){inti,a,b,t,s=0;for(i=0;ivoidmain(){doublev,s;scanf("%lf%lf",&v,&s);v/=3.
6;printf("%.
2lf\n",v*v/2/s);}1237分期付款TimeLimit:1000MS|MemoryLimit:32768KBSubmits:567|Solved:327DescriptionCoco在汽车展示会上看中一辆汽车,首付款5000元就可以开走这辆车,条件非常诱人,Coco实在无法拒绝.
但Coco还是一个比较成熟的人,她希望能知道自己接下去每个月需要为这辆汽车支付多少钱.
请你编写一个程序来帮助Coco计算月供款.
已知汽车的价格、月利率以及贷款年限.
计算月供款的公式为:月供=iP/(1-(1+i)^-n)其中,P为本金(借款数目),i为月利率(年利率的1/12),n为还款月数Input输入汽车价格(单位:元)、首付款(单位:元)、年利率和还款月数.
Output输出需要借款的数目以及月供款.
各保留2位小数.
SampleInput5000050000.
08736SampleOutput45000.
001424.
71HINTSourceNBUOJ#include#includevoidmain(){doublea,b,c,d,x;scanf("%lf%lf%lf%lf",&a,&b,&c,&d);x=(c/12)*(a-b)/(1-pow(1+(c/12),-d));printf("%.
2lf%.
2lf\n",a-b,x);}1238机器人的移动问题TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1460|Solved:671Description在一个平面直角坐标系上,一个机器人处于某格点(x0,y0)处.
格点的横纵坐标均为整数.
有一个遥控器可以让机器人实现9种可能的运动方式,它们依次是:(1)向左走一个单位;(2)向右走一个单位;(3)向上走一个单位;(4)向下走一个单位;(5)走到格点(x0,y0)关于x轴的对称点;(6)走到格点(x0,y0)关于y轴的对称点;(7)走到格点(x0,y0)关于原点的对称点;(8)以格点(x0,y0)与原点的连线为轴,逆时针旋转90度;(9)以格点(x0,y0)与原点的连线为轴,顺时针旋转90度;其中,以横坐标x值增大为向右,以纵坐标y值增大为向上.
现已知机器人的初始位置(x0,y0)以及遥控器此次发出的指令编号i(1voidmain(){inta,b,x,y,c;chari;scanf("%d%d%c",&a,&b,&i);switch(i){case'1':x=a-1;y=b;break;case'2':x=a+1;y=b;break;case'3':x=a;y=b+1;break;case'4':x=a;y=b-1;break;case'5':x=a;y=-b;break;case'6':x=-a;y=b;break;case'7':x=-a;y=-b;break;case'8':x=-b;y=a;break;case'9':x=b;y=-a;break;}printf("%d%d\n",x,y);}1239数制转换TimeLimit:1000MS|MemoryLimit:32768KBSubmits:695|Solved:182Description将一个十进制整数n转换成指定的B进制数.
Input输入一个十进制整数n以及需要转换成的进制B.
Output输出转换成的B进制数.
输出内容中如果有英文字母的则用小写英文字母表示.
SampleInput98789616SampleOutputf12f8HINT输出时各字符间空一格,最后一个字符后面不加空格,直接换行.
SourceNBUOJ#includevoidmain(){intn,b,i,c;chara[100];scanf("%d%d",&n,&b);if(n==0)printf("0\n");else{for(i=0;i=0&&c=1;i--)printf("%c",a[i]);printf("%c\n",a[i]);}}1240约瑟夫问题(2)TimeLimit:1000MS|MemoryLimit:32768KBSubmits:350|Solved:195Description模拟这个游戏.
n个人围坐一圈,从第1个人开始数,沿顺时针方向数到m,最后数到的人被淘汰.
然后接下去数,数到m,再淘汰一人.
重复上述过程,直到剩下1人为止.
剩下的这个人是获胜者.
Input输入两个整数n和m.
nvoidmain(){intn,m,i,c=1,r,a[1000];scanf("%d%d",&n,&m);for(i=0;ivoidmain(){intn,i,j;scanf("%d",&n);for(i=0;i1;j--)printf("");for(j=0;jvoidmain(){doublea,b,c,d;scanf("%lf%lf%lf%lf",&a,&b,&c,&d);printf("%.
1lf%.
1lf\n",a/b,a/c*d);}1243零钱兑换TimeLimit:1000MS|MemoryLimit:32768KBSubmits:390|Solved:297Description输入一个整数表示钱的数目,试把它兑换成零钱,而且零钱个数要尽量少(零钱仅包括10元、5元和1元三种面值).
Input输入需兑换的金额(整数).
Output依次输出10元、5元、1元币的个数.
(个数为0的也要输出)SampleInput46SampleOutput411HINT输出的数据两量之间以空格间隔,最后一个数据的后面不需要空格,直接换行.
SourceNBUOJ#includevoidmain(){intx,a=0,b=0;scanf("%d",&x);while(x>=10){a++;x-=10;}while(x>=5){b++;x-=5;}printf("%d%d%d\n",a,b,x);}1244判断三角形形状TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1154|Solved:498Description任意输入三条边,若能构成三角形,且为等边、等腰、直角和其他,则分别输出DB、DY、ZJ和OTHER,若不能构成三角形则输出NO.
Input输入三条边边长(实数类型).
Output分别输出DB、DY、ZJ和OTHER,或NO.
SampleInput3.
04.
05.
0SampleOutputZJHINT判断的优先顺序依次是:等边、等腰、直角.
即,如果某三角形既是等腰的,又是直角的,则判断结果是等腰的.
SourceNBUOJ#includevoidmain(){doublea,b,c,t,s;scanf("%lf%lf%lf",&a,&b,&c);s=a+b+c;t=a;if(b>t)t=b;if(c>t)t=c;if(s-t>t){if(a==b&&b==c)printf("DB\n");elseif(a==b||a==c||b==c)printf("DY\n");elseif(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)printf("ZJ\n");elseprintf("OTHER\n");}elseprintf("NO\n");}1245整数数列求和(8)TimeLimit:1000MS|MemoryLimit:32768KBSubmits:362|Solved:265Description输入整数m,计算1*2*3+3*4*5+…+n*(n+1)*(n+2)的值,其中n是不大于m的最大整数.
Input输入整数m(m>=1)Output输出1*2*3+3*4*5+…+n*(n+1)*(n+2)的值.
SampleInput100SampleOutput13002450HINTSourceNBUOJ#includevoidmain(){intm,i,s=0;scanf("%d",&m);for(i=1;i#definePI3.
14voidmain(){doubled1,d2,d,p;scanf("%lf%lf%lf%lf",&d1,&d2,&d,&p);d1/=2;d2/=2;printf("%.
2lf\n",PI*(d2*d2-d1*d1)*d*p);}1247四位数的数字和TimeLimit:1000MS|MemoryLimit:32768KBSubmits:1680|Solved:969DescriptionCoCo和同学玩速算的游戏,每次她们任意报出一个4位正整数,然后要求快速算出该数各位数字之和.
现在请你编程实现这一过程,从键盘输入任意一个4位正整数,求出该4位数的各位数字,并计算它们的和输出到屏幕上.
Input任意一个4位正整数.
Output输出分2行,第1行是该4位数的各位数字,按千位、百位、十位、个位的顺序输出(数字间空一格,最后一个数据后面直接加换行符).
第2行是各个位上的数字相加后的和.
SampleInput7321SampleOutput732113HINTSourceNBUOJ#include"stdio.
h"voidmain(){inta,b,c,d,e,f;scanf("%d",&a);b=a/1000;c=(a-b*1000)/100;d=(a-b*1000-c*100)/10;e=a-b*1000-c*100-d*10;f=b+c+d+e;printf("%d%d%d%d\n",b,c,d,e);printf("%d\n",f);}1248成绩评级(3)TimeLimit:1000MS|MemoryLimit:32768KBSubmits:237|Solved:134Description设计一个程序,将百分制的分数转换成A-E五个等级,具体转换如下:A:[90-100]B:[80-89]C:[70-79]D:[60-69]E:[0-59]Input输入一组整数,当数据为负数的时候结束(假设输入的有效数据的大小不超过100).
Output根据输入的结果,输出等级,每个结果一行,输出后换行.
SampleInput10087776951-1SampleOutputABCDEHINTSourceNBUOJ#includevoidmain(){intx;scanf("%d",&x);while(x>=0){if(x=90)printf("A\n");if(x=80)printf("B\n");if(x=70)printf("C\n");if(x=60)printf("D\n");if(x=0)printf("E\n");scanf("%d",&x);}}1249关于保密的问题TimeLimit:1000MS|MemoryLimit:32768KBSubmits:293|Solved:198Description两个部门之间采用加密的方式传输数据以保障数据安全,加密方法为将其中所有的大写英文字母+3,小写英文字母-3,其它字母不变.
编写一个程序,输入一个字符串(换行符结束),然后再输出加密后的字符串.
今天看到一个网友从原来虚拟主机准备转移至服务器管理自己的业务。这里问到虚拟主机和服务器到底有什么不同,需要用到哪些工具软件。那准备在下班之间稍微摸鱼一下整理我们服务器安装环境和运维管理中常见需要用到的软件工具推荐。第一、系统镜像软件一般来说,我们云服务器或者独立服务器都是有自带镜像的。我们只需要选择镜像安装就可以,比如有 Windows和Linux。但是有些时候我们可能需要自定义镜像的高级玩法,这...
快云科技怎么样?快云科技是一家成立于2020年的新起国内主机商,资质齐全 持有IDC ICP ISP等正规商家。云服务器网(yuntue.com)小编之前已经介绍过很多快云科技的香港及美国云服务器了,这次再介绍一下新的优惠方案。目前,香港云沙田CN2云服务器低至29元/月起;美国超防弹性云/洛杉矶CUVIP低至33.6元/月起。快云科技的云主机架构采用KVM虚拟化技术,全盘SSD硬盘,RAID10...
Pia云是一家2018的开办的国人商家,原名叫哔哔云,目前整合到了魔方云平台上,商家主要销售VPS服务,采用KVM虚拟架构 ,机房有美国洛杉矶、中国香港和深圳地区,洛杉矶为crea机房,三网回程CN2 GIA,带20G防御,常看我测评的朋友应该知道,一般带防御去程都是骨干线路,香港的线路也是CN2直连大陆,目前商家重新开业,价格非常美丽,性价比较非常高,有需要的朋友可以关注一下。活动方案...