POJ Grids基本练习题 资料.docx
- 文档编号:26127525
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:134
- 大小:190.25KB
POJ Grids基本练习题 资料.docx
《POJ Grids基本练习题 资料.docx》由会员分享,可在线阅读,更多相关《POJ Grids基本练习题 资料.docx(134页珍藏版)》请在冰豆网上搜索。
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];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- POJ Grids基本练习题 资料 Grids 基本 练习题