POJ_Grids_入门题目整理资料.doc

上传人:e****s 文档编号:62482628 上传时间:2022-11-22 格式:DOC 页数:92 大小:414.50KB
返回 下载 相关 举报
POJ_Grids_入门题目整理资料.doc_第1页
第1页 / 共92页
POJ_Grids_入门题目整理资料.doc_第2页
第2页 / 共92页
点击查看更多>>
资源描述

《POJ_Grids_入门题目整理资料.doc》由会员分享,可在线阅读,更多相关《POJ_Grids_入门题目整理资料.doc(92页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、POJ Grids基本练习题 资料POJ1004 Financial Management- 3 -POJ1664 放苹果- 5 -POJ2675 计算书费- 7 -POJ2676 整数的个数- 9 -POJ2679 整数的立方和- 11 -POJ2680 化验诊断- 12 -POJ2684 求阶乘的和- 15 -POJ2687 数组逆序重放- 16 -POJ2688 求字母的个数- 17 -POJ2689 大小写字母互换- 18 -POJ2694 逆波兰表达式- 19 -POJ2696 计算表达式的值- 20 -POJ2699 自整除数- 22 -POJ2701 与7无关的数- 23 -PO

2、J2702 密码翻译- 24 -POJ2703 骑车与走路- 26 -POJ2707 求一元二次方程的根- 27 -POJ2714 求平均年龄- 29 -POJ2715 谁拿了最多的奖学金- 30 -POJ2718 晶晶赴约会- 33 -POJ2719 陶陶摘苹果- 34 -POJ2720 大象喝水- 35 -POJ2722 学分绩点- 36 -POJ2733 判断闰年- 38 -POJ2734 十进制到八进制- 39 -POJ2750 鸡兔同笼- 40 -POJ2753 菲波那契数列- 41 -POJ2758 菲波那契数列(2)- 42 -POJ2764 数根- 43 -POJ2767 简单

3、密码- 45 -POJ2780 Evas Problem- 48 -POJ2786 Pell数列- 49 -POJ2796数字求和- 50 -POJ2807两倍- 51 -POJ 2808校门外的树- 53 -POJ2856 计算邮资- 55 -POJ2870 求矩阵的加法- 57 -POJ2871 整数奇偶排序- 59 -POJ2882 Program I- 61 -POJ2883 checking order- 63 -POJ2886 能被3除尽的数之和- 65 -POJ2887 能被3、5、7整除的数- 66 -POJ2888字符串中的数字- 68 -POJ2926 算数运算- 70 -

4、POJ2927 判断数字个数- 71 -POJ2930 加减乘除- 73 -POJ2933 停车场收费- 75 -POJ2938 按顺序输出- 77 -POJ2943 小白鼠排队- 78 -POJ3142 球弹跳高度的计算- 80 -POJ3164 奇偶排序- 81 -POJ3195 最大公约数- 82 -POJ3248 最大公约数- 83 -POJ3255 十进制到六进制- 85 -POJ3670 计算鞍点- 87 -POJ3708 1的个数- 89 -POJ3756 多边形内角和- 91 -POJ1004 Financial ManagementTime Limit: 1000ms Mem

5、ory limit: 10000kB 题目描述 Larry graduated this year and finally has a job. Hes making a lot of money, but somehow never seems to have enough. Larry has decided that he needs to grab hold of his financial portfolio and solve his financing problems. The first step is to figure out whats been going on wi

6、th his money. Larry has his bank account statements and wants to see how much money he has. Help Larry by writing a program to take his closing balance from each of the past twelve months and calculate his average account balance. 输入 The input will be twelve lines. Each line will contain the closing

7、 balance of his bank account for a particular month. Each number will be positive and displayed to the penny. No dollar sign will be included. 输出 The output will be a single number, the average (mean) of the closing balances for the twelve months. It will be rounded to the nearest penny, preceded im

8、mediately by a dollar sign, and followed by the end-of-line. There will be no other spaces or characters in the output. 样例输入 样例输出 Global No. 6 思路:这道题就是计算一下12个月的平均工资。代码:#includeusing namespace std;int main() double a12; int i; for(i=0;iai; double sum=; for(i=0;i12;i+) sum+=ai; double average; average

9、=sum/12; cout$averageendl; return 0;运行结果:POJ1664 放苹果Time Limit: 1000ms Memory limit: 65536kB 题目描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 输入 第一行是测试数据的数目t(0 = t = 20)。以下每行均包含二个整数M和N,以空格分开。1=M,Nm,必有n-m个盘子空着,去掉他们对白放苹果方法数目不产生影响;即if(nm),f(m,n)=f(m,m) 当n=m时不同的放法可以分成两类:即有至少有一个盘子

10、空着或者所有盘子都有苹果,前一种情况相当于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)。整个递归过程描述如下:int f(int m,int n)if(n=1|m=0) return 1;if(mm时会返回f(m,m),所以终会达到出口“m=0”程序代码:#includeusing namespace std;int count(int x,int y)if(y=1|x=0) return 1;if(xt;for(int i

11、=0;imn; coutcount(m,n)endl; while(1); return 0;运行结果:POJ2675 计算书费Time Limit: 1000ms Memory limit: 10000kB 题目描述 下面是一个图书的单价表:计算概论 28.9 元/本数据结构与算法 32.7 元/本数字逻辑 元/本C+程序设计教程 78 元/本人工智能 35 元/本计算机体系结构 86.2 元/本编译原理元/本操作系统 43 元/本计算机网络 56 元/本JAVA程序设计 65 元/本给定每种图书购买的数量,编程计算应付的总费用。输入 输入第一行包含一个正整数k(0k100),表示有k组测试

12、数据;接下来k行,每行包含一组测试数据。每组测试数据包含10个整数(大于等于0,小于等于100),分别表示购买的计算概论、数据结构与算法、数字逻辑、C+程序设计教程、人工智能、计算机体系结构、编译原理、操作系统、计算机网络、JAVA程序设计的数量(以本为单位)。每两个整数用一个空格分开。 输出 对于每组测试数据,输出一行。该行包含一个浮点数f,表示应付的总费用。精确到小数点后两位。可用printf(%.2fn, sum)来输出sum的值,并精确到小数点后两位。 样例输入 21 5 8 10 5 1 1 2 3 4 3 5 6 3 100 1 1 0 1 0样例输出 Global No. 167

13、7 Source Code:#include#includeusing namespace std;#define M 100int main() int n,i,j,count10; double price10=28.9,32.7,45.6,78.0,35.0,86.2,27.8,43.0,56.0,65.0; double paid10,sum;cinn; for(j=1;j=n;j+) sum=0; for(i=0;icounti; paidi=pricei*counti; sum+=paidi; coutsetiosflags(ios:fixed)setprecision(2)sum

14、endl; return 0; Result:POJ2676 整数的个数Time Limit: 1000ms Memory limit: 65536kB 题目描述 给定k(1k100)个正整数,其中每个数都是大于等于1,小于等于10的数。写程序计算给定的k个正整数中,1,5和10出现的次数。 输入 输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。 输出 输出有三行,第一行为1出现的次数,第二行为5出现的次数,第三行为10出现的次数。 样例输入 51 5 8 10 5 样例输出 121Global No. 1678 Source Code:#include#

15、define N 100using namespace std;int main() int k,i,c1=0,c2=0,c3=0; cink; int aN; for(i=0;iai; for(i=0;ik;i+) if(ai=1) c1+; else if(ai=5) c2+; else if(ai=10) c3+; coutc1endl; coutc2endl; coutc3endl; while(1); return 0;Result:POJ2679 整数的立方和Time Limit: 1000ms Memory limit: 65536kB 题目描述 给定一个正整数k(1k10),求

16、1到k的立方和m。即m=1+2*2*2+k*k*k。 输入 输入只有一行,该行包含一个正整数k。 输出 输出只有一行,该行包含1到k的立方和。 样例输入 5 样例输出 225Global No. 1681 Scourse Code:#includeusing namespace std;int main() int n,i=2,sum=1; cinn; while(i=n) sum+=i*i*i; i+; coutsumendl; return 0; Result:POJ2680化验诊断Time Limit: 1000ms Memory limit: 65536kB 题目描述 下表是进行血常规

17、检验的正常值参考范围,及化验值异常的临床意义:给定一张化验单,判断其所有指标是否正常,如果不正常,统计有几项不正常。化验单上的值必须严格落在正常参考值范围内,才算是正常。正常参考值范围包括边界,即落在边界上也算正常。 输入 输出 对于每组测试数据,输出一行。如果所有检验项目正常,则输出:normal;否则输出不正常的项的数目。 样例输入 2female 4.5 4.0 115 37 200male 3.9 3.5 155 36 301样例输出 normal3Global No. 1682 Source Code:#include#includeusing namespace std;struc

18、t Info string sex; float a,b,c,d,e;int main() Info info101; int n,i,k=0; cinn; while(kinfoi.sexinfoi.ainfoi.binfoi.cinfoi.dinfoi.e; if(infoi.sex=female) if(infoi.a=4.0) countN+; else countI+; if(infoi.b=3.5) countN+; else countI+; if(infoi.c=110) countN+; else countI+; if(infoi.d=36) countN+; else c

19、ountI+; if(infoi.e=100) countN+; else countI+; if(countN=5) coutnormalendl; else coutcountIendl; else if(infoi.a=4.0) countN+; else countI+; if(infoi.b=3.5) countN+; else countI+; if(infoi.c=120) countN+; else countI+; if(infoi.d=42) countN+; else countI+; if(infoi.e=100) countN+; else countI+; if(c

20、ountN=5) coutnormalendl; else coutcountIendl; k+; return 0;Result:POJ2684 求阶乘的和Time Limit: 1000ms Memory limit: 65536kB 题目描述 求前n(1n12)个整数的阶乘的和(即求1!+2!+3!+.+n!)。 输入 输入有一行:整数n。 输出 输出有一行:阶乘得和。 样例输入 5样例输出 153Global No. 1686 #includeusing namespace std;long int function(int n) long int h; if (n1) h=n*fun

21、ction(n-1); else h=1; return h; int main() int data,count,sum=0; cindata; for(count=1;count=data;count+) sum+=function(count); coutsumendl; while(1); return 0;POJ2687数组逆序重放Time Limit: 1000ms Memory limit: 65536kB 题目描述 将一个数组中的值按逆序重新存放。例如,原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。 输入 输入为两行:第一行数组中元素的个数n(1n100),第二行

22、是n个整数,每两个整数之间用空格分隔。 输出 输出为一行:输出逆序后数组的整数,每两个整数之间用空格分隔。 样例输入 58 6 5 4 1样例输出 1 4 5 6 8Global No. 1689 Scourse Code:#include#define N 100using namespace std;int main() int count,total; cintotal; int aN; for(count=0;countacount; for(count=total-1;count=0;count-) coutacount ; return 0;POJ2688 求字母的个数Time L

23、imit: 1000ms Memory limit: 65536kB 题目描述 在一个字符串中找出元音字母a,e,i,o,u出现的次数。 输入 输入一行字符串(字符串中可能有空格,请用gets(s)方法把一行字符串输入到字符数组s中),字符串长度小于80个字符。 输出 输出一行,依次输出a,e,i,o,u在输入字符串中出现的次数,整数之间用空格分隔。 样例输入 If so, you already have a Google Account. You can sign in on the right.样例输出 5 4 3 7 3提示 注意,只统计小写元音字母a,e,i,o,u出现的次数。 Gl

24、obal No. 1690 Scourse Code:#include#define N 80using namespace std;int main() char testN; int counta=0,counte=0,counti=0,counto=0,countu=0; gets(test); int i; for(i=0;iN & testi!=0;i+) if(testi=a) counta+; else if(testi=e) counte+; else if(testi=i) counti+; else if(testi=o) counto+; else if (testi=u

25、) countu+; coutcounta counte counti counto countu endl; return 0;POJ2689 大小写字母互换Time Limit: 1000ms Memory limit: 65536kB 题目描述 把一个字符串中所有出现的大写字母都替换成小写字母,同时把小写字母替换成大写字母。 输入 输入一行:待互换的字符串。 输出 输出一行:完成互换的字符串(字符串长度小于80)。 样例输入 If so, you already have a Google Account. You can sign in on the right. 样例输出 iF SO

26、, YOU ALREADY HAVE A gOOGLE aCCOUNT. yOU CAN SIGN IN ON THE RIGHT. 提示 由于输入字符串中有空格,因此应该用get(s)把一行字符串读入到字符数组s中。可用printf(%sn,s)输出字符串s。 Global No. 1691 int main()char aM;gets(a);fun(a);while(1); return 0;通过代码:#include#include#define M 80using namespace std;void fun(char a)int i;for(i=0;ai;i+) if(ai=A) &

27、 (ai=a) & (ai=z) ai-=32;/转化成大写字母printf(%sn,a);POJ2694逆波兰表达式问题描述:逆波兰表达式是一种吧运算符前置的算术表达式,例如普通的表达式2+3的逆波兰表示为+23.逆波兰表达式的优点是运算符之间不必有优先级的关系,也不必有括号改变运算次序,例如(2+3)*4的逆波兰表示法为*+2 3 4.本题求解的逆波兰表达式的值。输入数据:输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。输出要求:输出为一行,即表达式的值。输入样例:* + 11.0 12.0 +24.0 35.0+输出样例:解题思路:+-*/;后三种情况与2.相同,只是计算

28、从+变成-,*,/。参考程序:#include#includedouble exp()char a10;scanf(%s,a);switch(a0)case+:return exp()+exp();case-:return exp()-exp(); case*:return exp()*exp(); case/:return exp()/exp();default:return atof(a);void main()double ans;ans=exp();printf(%fn,ans);POJ2696 计算表达式的值Time Limit: 1000ms Memory limit: 65536

29、kB 题目描述 有些语言中表达式的运算符使用字符串表示,例如用mul代表*,用div代表/,用add代表+,用sub代表-,用mod代表%。 输入 第一行为表达式的个数n。其余n行每行一个表达式,表达式由两个整数及其中间的运算符字符串表示。 输出 输出为n行,每行是对应表达式的值。注意,此处要求的所有运算均为整数运算。 样例输入 5345 mul 1223945 div 12321 add 343340 sub 211377 mod 27样例输出 4209032866412926Global No. 1698 Source Code:#include#includeusing namespac

30、e std;int main() string s; char ss4; int a,b; int i,n; cinn; for(i=0;ia; cinss; s=ss; Result: cinb; if(s=add) couta+bendl; else if(s=sub) couta-bendl; else if(s=mul) couta*bendl; else if(s=div) couta/bendl; else if(s=mod) couta%bendl; return 0; POJ2699自整除数Time Limit: 1000ms Memory limit: 65536kB 题目描

31、述 对一个整数n,如果其各个位数的数字相加得到的数m能整除n,则称n为自整除数.例如21,21%(2+1)=0,所以21是自整除数.现求出从10到n(n100)之间的所有自整除数. 输入 有一行,整数n,(10=n100) 输出 有多行.按从小到大的顺序输出所有大于等于10,小于等于n的自整除数,每行一个自整除数. 样例输入 Source Code:#includeusing namespace std;int main() int n,n1,n2,sum=0,i; cinn; for(i=10;i=n;i+) n1=i%10; n2=i/10; sum=n1+n2; if(i%sum=0)

32、coutiendl; return 0;47样例输出 101218202124273036404245Global No. 1701 POJ2701 与7无关的数Time Limit: 1000ms Memory limit: 65536kB 题目描述 一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数.现求所有小于等于n(n100)的与7无关的正整数的平方和. 输入 输入为一行,正整数n,(n100) 输出 输出小于等于n的与7无关的正整数的平方和 样例输入 21样例输出 2336Global No. 1703 Scource Code:1. #i

33、nclude2. using namespace std;3. int main()4. 5. int n;6. cinn;7. int i,j,sum=0;8. for(i=1;i=n;i+)9. if(i%7!=0 & i/10!=7 & i%10!=7)10. sum+=i*i;11. coutsumendl;12. return 0;13. POJ2702密码翻译Time Limit: 1000ms Memory limit: 65536kB 题目描述 在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻

34、易的识别.我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,则可得到一个简单的加密字符串. 输入 第一行是字符串的数目n, (也要使用get(s)读取字符串,再用n=atoi(s)获得整数数值).其余n行每行一个字符串,用gets(s)方式读取这一行字符串.每个字符串长度小于80个字符. 输出 输出每行字符串的加密字符串. 样例输入 1Hello! How are you!样例输出 Ifmmp! Ipx bsf zpv!提示 为了避免gets和scanf在使用时的冲突,可用n=atoi(s)把字符串s转换为整数.atoi定义在头文件stdlib.h中. Global No. 1704

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文献 > 管理手册

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁