POJ Grids基本练习题 资料.docx

上传人:b****7 文档编号:26127525 上传时间:2023-06-17 格式:DOCX 页数:134 大小:190.25KB
下载 相关 举报
POJ Grids基本练习题 资料.docx_第1页
第1页 / 共134页
POJ Grids基本练习题 资料.docx_第2页
第2页 / 共134页
POJ Grids基本练习题 资料.docx_第3页
第3页 / 共134页
POJ Grids基本练习题 资料.docx_第4页
第4页 / 共134页
POJ Grids基本练习题 资料.docx_第5页
第5页 / 共134页
点击查看更多>>
下载资源
资源描述

POJ Grids基本练习题 资料.docx

《POJ Grids基本练习题 资料.docx》由会员分享,可在线阅读,更多相关《POJ Grids基本练习题 资料.docx(134页珍藏版)》请在冰豆网上搜索。

POJ Grids基本练习题 资料.docx

POJGrids基本练习题资料

POJGrids基本练习题资料

POJ——1004FinancialManagement-3-

POJ——1664放苹果-5-

POJ——2675计算书费-7-

POJ——2676整数的个数-9-

POJ——2679整数的立方和-11-

POJ——2680化验诊断-12-

POJ——2684求阶乘的和-15-

POJ——2687数组逆序重放-16-

POJ——2688求字母的个数-17-

POJ——2689大小写字母互换-18-

POJ——2694逆波兰表达式-19-

POJ——2696计算表达式的值-20-

POJ——2699自整除数-22-

POJ——2701与7无关的数-23-

POJ——2702密码翻译-24-

POJ——2703骑车与走路-26-

POJ——2707求一元二次方程的根-27-

POJ——2714求平均年龄-29-

POJ——2715谁拿了最多的奖学金-30-

POJ——2718晶晶赴约会-33-

POJ——2719陶陶摘苹果-34-

POJ——2720大象喝水-35-

POJ——2722学分绩点-36-

POJ——2733判断闰年-38-

POJ——2734十进制到八进制-39-

POJ——2750鸡兔同笼-40-

POJ——2753菲波那契数列-41-

POJ——2758菲波那契数列

(2)-42-

POJ——2764数根-43-

POJ——2767简单密码-45-

POJ——2780Eva’sProblem-48-

POJ——2786Pell数列-49-

POJ——2796数字求和-50-

POJ——2807两倍-51-

POJ——2808校门外的树-53-

POJ——2856计算邮资-55-

POJ——2870求矩阵的加法-57-

POJ——2871整数奇偶排序-59-

POJ——2882ProgramI-61-

POJ——2883checkingorder-63-

POJ——2886能被3除尽的数之和-65-

POJ——2887能被3、5、7整除的数-66-

POJ——2888字符串中的数字-68-

POJ——2926算数运算-70-

POJ——2927判断数字个数-71-

POJ——2930加减乘除-73-

POJ——2933停车场收费-75-

POJ——2938按顺序输出-77-

POJ——2943小白鼠排队-78-

POJ——3142球弹跳高度的计算-80-

POJ——3164奇偶排序-81-

POJ——3195最大公约数-82-

POJ——3248最大公约数-83-

POJ——3255十进制到六进制-85-

POJ——3670计算鞍点-87-

POJ——37081的个数-89-

POJ——3756多边形内角和-91-

POJ——1004FinancialManagement

TimeLimit:

1000ms

Memorylimit:

10000kB

题目描述

Larrygraduatedthisyearandfinallyhasajob.He'smakingalotofmoney,butsomehowneverseemstohaveenough.Larryhasdecidedthatheneedstograbholdofhisfinancialportfolioandsolvehisfinancingproblems.Thefirststepistofigureoutwhat'sbeengoingonwithhismoney.Larryhashisbankaccountstatementsandwantstoseehowmuchmoneyhehas.HelpLarrybywritingaprogramtotakehisclosingbalancefromeachofthepasttwelvemonthsandcalculatehisaverageaccountbalance.

输入

Theinputwillbetwelvelines.Eachlinewillcontaintheclosingbalanceofhisbankaccountforaparticularmonth.Eachnumberwillbepositiveanddisplayedtothepenny.Nodollarsignwillbeincluded.

输出

Theoutputwillbeasinglenumber,theaverage(mean)oftheclosingbalancesforthetwelvemonths.Itwillberoundedtothenearestpenny,precededimmediatelybyadollarsign,andfollowedbytheend-of-line.Therewillbenootherspacesorcharactersintheoutput.

样例输入

100.00

489.12

12454.12

1234.10

823.05

109.20

5.27

1542.25

839.18

83.99

1295.01

1.75

样例输出

$1581.42

GlobalNo.

6

思路:

这道题就是计算一下12个月的平均工资。

代码:

#include

usingnamespacestd;

intmain()

{

doublea[12];

inti;

for(i=0;i<12;i++)

cin>>a[i];

doublesum=0.0;

for(i=0;i<12;i++)

sum+=a[i];

doubleaverage;

average=sum/12;

cout<<"$"<

return0;

}

运行结果:

POJ——1664放苹果

TimeLimit:

1000ms

Memorylimit:

65536kB

题目描述

把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?

(用K表示)5,1,1和1,5,1是同一种分法。

输入

第一行是测试数据的数目t(0<=t<=20)。

以下每行均包含二个整数M和N,以空格分开。

1<=M,N<=10。

输出

对输入的每组数据M和N,用一行输出相应的K。

样例输入

1

73

样例输出

8

GlobalNo.

666

解题思路:

所有不同的摆放方法可以分为两类:

至少有一个盘子空着和所有盘子都不空,分别计算这两类摆放方法的数目,然后把他们加起来。

对于至少空着一个盘子的情况,则N个盘子摆放M个苹果的方法数目与N-1个盘子摆放M个苹果的摆放方法数目等于N个盘子摆放M-N个苹果的摆放方法数目。

据此来用递归的方法求解这个问题。

设f(m,n)为m个苹果,n个盘子的放法数目,则先对n进行讨论,如果n>m,必有n-m个盘子空着,去掉他们对白放苹果方法数目不产生影响;即if(n>m),f(m,n)=f(m,m)当n<=m时不同的放法可以分成两类:

即有至少有一个盘子空着或者所有盘子都有苹果,前一种情况相当于f(m,n)=f(m,n-1);后一种情况可以从每个盘子中拿掉一个苹果,不影响不同放法的数目,即有f(m,n)=f(m-n,n)。

总的放苹果的放法数目等于两者的和,即f(m,n)=f(m,n-1)+f(m-n,n)。

整个递归过程描述如下:

intf(intm,intn){

if(n==1||m==0)return1;

if(m

returnf(m,n-1)+f(m-n,n);

}

出口条件说明:

当n=1时,所有苹果必须放在一个盘子里,所以返回1;当苹果可放时,定义1中做法;递归的两条路,第一条n会逐渐减少,终会到达出口“n==1”;第二条m会逐渐减少,因为n>m时会返回f(m,m),所以终会达到出口“m==0”

程序代码:

#include

usingnamespacestd;

intcount(intx,inty){

if(y==1||x==0)return1;

if(x

returncount(x,y-1)+count(x-y,y);

}

intmain()

{

intt,m,n;

cin>>t;

for(inti=0;i

{

cin>>m>>n;

cout<

}

while

(1);

return0;

}

运行结果:

POJ——2675计算书费

TimeLimit:

1000ms

Memorylimit:

10000kB

题目描述

下面是一个图书的单价表:

计算概论28.9元/本

数据结构与算法32.7元/本

数字逻辑45.6元/本

C++程序设计教程78元/本

人工智能35元/本

计算机体系结构86.2元/本

编译原理27.8元/本

操作系统43元/本

计算机网络56元/本

JAVA程序设计65元/本

给定每种图书购买的数量,编程计算应付的总费用。

输入

输入第一行包含一个正整数k(0

每组测试数据包含10个整数(大于等于0,小于等于100),分别表示购买的《计算概论》、《数据结构与算法》、《数字逻辑》、《C++程序设计教程》、《人工智能》、《计算机体系结构》、《编译原理》、《操作系统》、《计算机网络》、《JAVA程序设计》的数量(以本为单位)。

每两个整数用一个空格分开。

输出

对于每组测试数据,输出一行。

该行包含一个浮点数f,表示应付的总费用。

精确到小数点后两位。

可用printf("%.2f\n",sum)来输出sum的值,并精确到小数点后两位。

样例输入

2

15810511234

356310011010

样例输出

2140.20

4427.80

GlobalNo.

1677

SourceCode:

#include

#include

usingnamespacestd;

#defineM100

intmain()

{

intn,i,j,count[10];

doubleprice[10]={28.9,32.7,45.6,78.0,35.0,86.2,27.8,43.0,56.0,65.0};

doublepaid[10],sum;

cin>>n;

for(j=1;j<=n;j++){

sum=0;

for(i=0;i<10;i++){

cin>>count[i];

paid[i]=price[i]*count[i];

sum+=paid[i];

}

cout<

:

fixed)<

(2)<

}

return0;

}

Result:

POJ——2676整数的个数

TimeLimit:

1000ms

Memorylimit:

65536kB

题目描述

给定k(1

写程序计算给定的k个正整数中,1,5和10出现的次数。

输入

输入有两行:

第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。

输出

输出有三行,第一行为1出现的次数,,第二行为5出现的次数,第三行为10出现的次数。

样例输入

5

158105

样例输出

1

2

1

GlobalNo.

1678

 

SourceCode:

#include

#defineN100

usingnamespacestd;

intmain()

{

intk,i,c1=0,c2=0,c3=0;

cin>>k;

inta[N];

for(i=0;i

cin>>a[i];

for(i=0;i

if(a[i]==1)c1++;

elseif(a[i]==5)c2++;

elseif(a[i]==10)c3++;

}

cout<

cout<

cout<

while

(1);

return0;

}

Result:

POJ——2679整数的立方和

TimeLimit:

1000ms

Memorylimit:

65536kB

题目描述

给定一个正整数k(1

即m=1+2*2*2+…+k*k*k。

输入

输入只有一行,该行包含一个正整数k。

输出

输出只有一行,该行包含1到k的立方和。

样例输入

5

样例输出

225

GlobalNo.

1681

ScourseCode:

#include

usingnamespacestd;

intmain()

{

intn,i=2,sum=1;

cin>>n;

while(i<=n){

sum+=i*i*i;

i++;

}

cout<

return0;

}

Result:

POJ——2680化验诊断

TimeLimit:

1000ms

Memorylimit:

65536kB

题目描述

下表是进行血常规检验的正常值参考范围,及化验值异常的临床意义:

给定一张化验单,判断其所有指标是否正常,如果不正常,统计有几项不正常。

化验单上的值必须严格落在正常参考值范围内,才算是正常。

正常参考值范围包括边界,即落在边界上也算正常。

输入

输出

对于每组测试数据,输出一行。

如果所有检验项目正常,则输出:

normal;否则输出不正常的项的数目。

样例输入

2

female4.54.011537200

male3.93.515536301

样例输出

normal

3

GlobalNo.1682

SourceCode:

#include

#include

usingnamespacestd;

structInfo

{

stringsex;

floata,b,c,d,e;

};

intmain()

{

Infoinfo[101];

intn,i,k=0;

cin>>n;

while(k

intcountN=0,countI=0;

cin>>info[i].sex>>info[i].a>>info[i].b>>info[i].c>>info[i].d>>info[i].e;

if(info[i].sex=="female"){

if(info[i].a<=10.0&&info[i].a>=4.0)

countN++;

else

countI++;

if(info[i].b<=5.5&&info[i].b>=3.5)

countN++;

else

countI++;

if(info[i].c<=150&&info[i].c>=110)

countN++;

else

countI++;

if(info[i].d<=40&&info[i].d>=36)

countN++;

else

countI++;

if(info[i].e<=300&&info[i].e>=100)

countN++;

else

countI++;

if(countN==5)

cout<<"normal"<

else

cout<

}

else

{

if(info[i].a<=10.0&&info[i].a>=4.0)

countN++;

else

countI++;

if(info[i].b<=5.5&&info[i].b>=3.5)

countN++;

else

countI++;

if(info[i].c<=160&&info[i].c>=120)

countN++;

else

countI++;

if(info[i].d<=48&&info[i].d>=42)

countN++;

else

countI++;

if(info[i].e<=300&&info[i].e>=100)

countN++;

else

countI++;

if(countN==5)

cout<<"normal"<

else

cout<

}

k++;

}

return0;

}

Result:

POJ——2684求阶乘的和

TimeLimit:

1000ms

Memorylimit:

65536kB

题目描述

求前n(1

+2!

+3!

+...+n!

)。

输入

输入有一行:

整数n。

输出

输出有一行:

阶乘得和。

样例输入

5

样例输出

153

GlobalNo.

1686

#include

usingnamespacestd;

longintfunction(intn)

{longinth;

if(n>1)h=n*function(n-1);

elseh=1;

returnh;

}

intmain()

{

intdata,count,sum=0;

cin>>data;

for(count=1;count<=data;count++)

{

sum+=function(count);

}

cout<

while

(1);

return0;

}

POJ——2687数组逆序重放

TimeLimit:

1000ms

Memorylimit:

65536kB

题目描述

将一个数组中的值按逆序重新存放。

例如,原来的顺序为8,6,5,4,1。

要求改为1,4,5,6,8。

输入

输入为两行:

第一行数组中元素的个数n(1

输出

输出为一行:

输出逆序后数组的整数,每两个整数之间用空格分隔。

样例输入

5

86541

样例输出

14568

GlobalNo.

1689

ScourseCode:

#include

#defineN100

usingnamespacestd;

intmain()

{

intcount,total;

cin>>total;

inta[N];

for(count=0;count

cin>>a[count];

for(count=total-1;count>=0;count--)

cout<

return0;

}

POJ——2688求字母的个数

TimeLimit:

1000ms

Memorylimit:

65536kB

题目描述

在一个字符串中找出元音字母a,e,i,o,u出现的次数。

输入

输入一行字符串(字符串中可能有空格,请用gets(s)方法把一行字符串输入到字符数组s中),字符串长度小于80个字符。

输出

输出一行,依次输出a,e,i,o,u在输入字符串中出现的次数,整数之间用空格分隔。

样例输入

Ifso,youalreadyhaveaGoogleAccount.Youcansigninontheright.

样例输出

54373

提示

注意,只统计小写元音字母a,e,i,o,u出现的次数。

GlobalNo.

1690

ScourseCode:

#include

#defineN80

usingnamespacestd;

intmain()

{

chartest[N];

intcounta=0,counte=0,counti=0,counto=0,countu=0;

gets(test);

inti;

for(i=0;i

='\0';i++){

if(test[i]=='a')counta++;

elseif(test[i]=='e')counte++;

elseif(test[i]=='i')counti++;

elseif(test[i]=='o')counto++;

elseif

(test[i]=='u')countu++;

}

cout<

return0;

}

POJ——2689大小写字母互换

TimeLimit:

1000ms

Memorylimit:

65536kB

题目描述

把一个字符串中所有出现的大写字母都替换成小写字母,同

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职高对口

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1