资源描述
1000 A+B问题
问题描述:
计算两个10以内的两个整数的和。
输入:
用空格分开的两个整数a和b(0≤a,b≤10)。
输出:
输出a+b的和。
输入示例:
1 2
输出示例:
程序运行效果示例:
来源:
POJ:1000
1001 鸡兔同笼I
问题描述:
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物?
输入:
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,每行一个正整数a(a<32768)。
输出:
输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开。
如果没有满足要求的答案,则输出两个0。
输入示例:
2
3
20
输出示例:
0 0
5 10
程序运行效果示例:
来源:
POJ:2750
1002 校门外的树
问题描述:
某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。
马路上有一些区域要用来建地铁,这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。
输入:
输入的第一行有两个整数L(1≤L≤10000)和 M(1≤M≤100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。
输出:
输出包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。
输入示例:
500 3
150 300
100 200
470 471
输出示例:
298
程序运行效果示例:
来源:
POJ:2808
1003 求平均年龄
问题描述:
班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。
输入:
第一行有一个整数n(1≤n≤100),表示学生的人数。其后n行每行有1个整数,取值为15到25。
输出:
输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。
输入示例:
2
18
17
输出示例:
17.50
程序运行效果示例:
来源:
POJ:2714
1004 成绩评定
问题描述:
现在有若干个同学的期末考试成绩,我们需要根据下面的规则根据每个同学考试成绩所在的分数段对其成绩进行评定,请编写程序完成这个任务。成绩评定规则如下:
² 若成绩在100分和90分(含100分和90分)之间,则判定为“A”;
² 若成绩在90分和80分(含80分)之间,则判定为“B”;
² 若成绩在80分和60分(含60分)之间,则判定为“C”;
² 若成绩在60分以下0分以上(含0分),则判定为“D”;
² 否则无法判定,给出错误提示。
输入:
第一行是一个整数n,表示需要评定的成绩的个数。
接下来有n行输入,每行都是一个浮点数,表示某个同学的成绩。
输出:
对应于每个同学的成绩,输出一行表示判定结果,对于无法判定的成绩,输出一行“Invalid”。
输入示例:
4
84
128
45.3
97
输出示例:
B
Invalid
D
A
程序运行效果示例:
来源:
杨珂
1005 数字求和
问题描述:
给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?
输入:
输入一行,只包括6个小于100的正整数,其中第一个正整数就是a。
输出:
输出一行,给出一个正整数,是5个数中小于a的数的和。
输入示例:
10 1 2 3 4 11
输出示例:
10
程序运行效果示例:
来源:
POJ:2796
1006 质数判定
问题描述:
质数被定义为一个不能除了1和它本身整除的正整数。你的任务就是要编写一个程序,判定任意一个大于等于2的正整数是否是质数。
输入:
输入只有一行,即要判定的这个正整数a(2≤a≤200)。
输出:
输出只有一行,若a是质数,输出“Y”,否则输出“N”。
输入示例:
53
输出示例:
Y
程序运行效果示例:
来源:
杨珂
1007 求分数序列和
问题描述:
有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,…… ,求这个分数序列的前n项之和。
输入:
输入有一行:正整数n(0≤n≤500)。
输出:
输出有一行:分数序列中前n项的和,要求精确到小数点后4位。
输入示例:
99
输出示例:
160.4849
提示:
为避免溢出错误,在程序中的中间变量尽可能都使用double类型。
程序运行效果示例:
来源:
POJ:2683
1008 陶陶摘苹果
问题描述:
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
输入:
输入包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
输出:
输出文件包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
输入示例:
100 200 150 140 129 134 167 198 200 111
110
输出示例:
5
程序运行效果示例:
来源:
POJ:2719
1009 装箱问题
问题描述:
一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1×1, 2×2, 3×3, 4×4, 5×5, 6×6。这些产品通常使用一个 6×6×h 的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。
输入:
输入文件包括几行,每一行代表一个订单。每个订单里的一行包括六个整数,中间用空格隔开,分别为1×1至6×6这六种产品的数量。输入文件将以6个0组成的一行结尾。
输出:
除了输入的最后一行6个0以外,输入文件里每一行对应着输出文件的一行,每一行输出一个整数代表对应的订单所需的最小包裹数。
输入示例:
0 0 4 0 0 1
7 5 1 0 0 0
0 0 0 0 0 0
输出示例:
2
1
程序运行效果示例:
来源:
POJ:1017
1010 棋盘上的距离
问题描述:
国际象棋的棋盘是黑白相间的8 * 8的方格,棋子放在格子中间。如下图所示:
王、后、车、象的走子规则如下:
² 王:横、直、斜都可以走,但每步限走一格。
² 后:横、直、斜都可以走,每步格数不受限制。
² 车:横、竖均可以走,不能斜走,格数不限。
² 象:只能斜走,格数不限。
写一个程序,给定起始位置和目标位置,计算王、后、车、象从起始位置走到目标位置所需的最少步数。
输入:
第一行是测试数据的组数t(0≤t≤20)。以下每行是一组测试数据,每组包括棋盘上的两个位置,第一个是起始位置,第二个是目标位置。位置用“字母-数字”的形式表示,字母从“a”到“h”,数字从“1”到“8”。
输出:
对输入的每组测试数据,输出王、后、车、象所需的最少步数。如果无法到达,就输出“Inf”。
输入示例:
2
a1 c3
f5 f8
输出示例:
2 1 2 1
3 1 1 Inf
程序运行效果示例:
来源:
POJ:1657
1011 奖金发放
问题描述:
企业每个月发放的奖金根据当月利润进行提成。利润I低于或等于10万元的,奖金可提10%;利润高于10万元,低于20万元(100000<I≤200000)时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;200000<I≤400000时,低于20万元的部分仍按上述办法提成(下同)。高于20万的部分按5%提成;400000<I≤600000时,高于40万元的部分按3%提成;600000<I≤1000000时,高于60万元的部分按1.5%提成;I>1000000时,超过100万元的部分按1%提成。
现在请你编写一段程序,读取一年中每个月的利润,计算并输出这一年内的应发奖金总额。
输入:
输入数据一共有12行,每一行都是一个正整数,其中第i(1≤i≤12)行的整数表示第i个月的利润(以元为单位)。每个整数都不超过2000000。
输出:
输出只有一行,即该企业在这一年内应该发放的奖金总额(以元为单位),要求精确到小数点后两位。
输入示例:
400000
106000
50000
580000
620000
1030000
1700000
122000
640000
76000
60000
540000
输出示例:
287000.00
提示:
程序中运算涉及到的浮点数请使用float类型变量而不要使用double类型,否则有可能导致Wrong Answer。
程序运行效果示例:
来源:
杨珂
1012 计算书费
问题描述:
下面是一个图书的单价表:
给定每种图书购买的数量,编程计算应付的总费用。
输入:
输入第一行包含一个正整数k(0<k<100),表示有k组测试数据;接下来k行,每行包含一组测试数据。每组测试数据包含10个整数(大于等于0,小于等于100),分别表示购买的《计算概论》、《数据结构与算法》、《数字逻辑》、《C++程序设计教程》、《人工智能》、《计算机体系结构》、《编译原理》、《操作系统》、《计算机网络》、《JAVA程序设计》的数量(以本为单位)。每两个整数用一个空格分开。
输出:
对于每组测试数据,输出一行。该行包含一个浮点数f,表示应付的总费用。精确到小数点后两位。
输入示例:
2
1 5 8 10 5 1 1 2 3 4
3 5 6 3 100 1 1 0 1 0
输出示例:
2140.20
4427.80
程序运行效果示例:
来源:
POJ:2675
1013 鸡兔同笼II
问题描述:
笼子中有若干只鸡和若干只兔子,现在只知道笼子中总共有a个头和b只脚(a和b都是非负整数),请你编写一个程序计算笼子中分别有多少只鸡和多少只兔。笼子中鸡的数量和兔的数量都必须是一个非负整数,否则就是无效答案。
输入:
输入只有一行,包括两个非负整数,分别表示笼中头的数量a和脚的数量b。
输出:
输出也只有一行,包括用空格分开的两个整数,分别表示笼中鸡的数量和兔的数量。若为无效答案则输出一行“Error”。
输入示例:
21 58
输出示例:
13 8
程序运行效果示例:
来源:
杨珂
1014 两倍
问题描述:
给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。
比如给定1 4 3 2 9 7 18 22,得到的答案是3,因为2是1的两倍,4是2个两倍,18是9的两倍。
输入:
输入包括多组测试数据。每组数据包括一行,给出2到15个两两不同且小于100的正整数。每一行最后一个数是0,表示这一行的结束,这个数不属于那2到15个给定的正整数。输入的最后一行只包括一个整数-1,这行表示输入数据的结束,不用进行处理。
输出:
对每组输入数据,输出一行,给出有多少个数对满足其中一个数是另一个数的两倍。
输入示例:
1 4 3 2 9 7 18 22 0
2 4 8 10 0
7 5 11 13 1 3 0
-1
输出示例:
3
2
0
程序运行效果示例:
来源:
POJ:2807
1015 打印极值点下标
问题描述:
在一个整数数组中,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。
输入:
有2×n+1行输入:第一行是要处理的数组的个数n;对其余2×n行,第一行是此数组的元素个数k(4≤k≤80),第二行是k个整数,每两个整数之间用空格分隔。
输出:
输出为n行:每行对应于相应数组的所有极值点下标值,下标值之间用空格分隔。
输入示例:
3
10
10 12 12 11 11 12 23 24 12 12
15
12 12 122 112 222 211 222 221 76 36 31 234 256 76 76
15
12 14 122 112 222 222 222 221 76 36 31 234 256 76 73
输出示例:
0 7
2 3 4 5 6 10 12
0 2 3 10 12 14
程序运行效果示例:
来源:
POJ:2691
1016 肿瘤面积
问题描述:
在一个正方形的灰度图片上,肿瘤是一块矩形的区域,肿瘤的边缘所在的像素点在图片中用0表示。其它肿瘤内和肿瘤外的点都用255表示。现在要求你编写一个程序,计算肿瘤内部的像素点的个数(不包括肿瘤边缘上的点)。已知肿瘤的边缘平行于图像的边缘。
输入:
只有一个测试样例。第一行有一个整数n,表示正方形图像的边长。其后n行每行有n个整数,取值为0或255。整数之间用一个空格隔开。已知n不大于100。
输出:
输出一行,该行包含一个整数,为要求的肿瘤内的像素点的个数。
输入示例:
5
255 255 255 255 255
255 0 0 0 255
255 0 255 0 255
255 0 0 0 255
255 255 255 255 255
输出示例:
1
程序运行效果示例:
来源:
POJ:2713
1017 肿瘤检测
问题描述:
一张CT扫描的灰度图像可以用一个N*N(0<N<100)的矩阵描述,矩阵上的每个点对应一个灰度值(整数),其取值范围是0-255。我们假设给定的图像中有且只有一个肿瘤。在图上监测肿瘤的方法如下:如果某个点对应的灰度值小于等于50,则这个点在肿瘤上,否则不在肿瘤上。我们把在肿瘤上的点的数目加起来,就得到了肿瘤在图上的面积。任何在肿瘤上的点,如果它是图像的边界或者它的上下左右四个相邻点中至少有一个是非肿瘤上的点,则该点称为肿瘤的边界点。肿瘤的边界点的个数称为肿瘤的周长。现在给定一个图像,要求计算其中的肿瘤的面积和周长。
输入:
输入第一行包含一个正整数N(0<N<100),表示图像的大小;接下来N行,每行包含图像的一行。图像的一行用N个整数表示(所有整数大于等于0,小于等于255),两个整数之间用一个空格隔开。
输出:
输出只有一行,该行包含两个正整数,分别为给定图像中肿瘤的面积和周长,用一个空格分开。
输入示例:
6
99 99 99 99 99 99
99 99 99 50 99 99
99 99 49 49 50 51
99 50 20 25 52 99
40 50 99 99 99 99
99 99 99 99 99 99
输出示例:
9 8
程序运行效果示例:
来源:
POJ:2677
1018 财务管理
问题描述:
兰利今年毕业了并且最后找到了一份工作。他赚了很多钱,可是钱却总是不够花。兰利最后决定,他必须要能够对他的财政情况进行详细的管理,这样才可以解决自己的财政问题。而这样第一个要解决的问题就是他必须要清楚这些钱都拿去干什么了。兰利手里有自己的银行帐单,他需要知道自己到底有多少钱。现在需要请你帮兰利编写一个程序,让兰利可以把这一年来每个月的存款余额输入进去,而让程序最终计算出兰利的平均账户金额。
输入:
输入数据总共有十二行。每一行就是近一年来某个月在兰利账户上的余额。每一个数都是一个正数并且精确到小数点后两位。输入的时候不输入美元符号$。
输出:
输出数据就是一个单个的数字,表示这一年来兰利账户上的平均余额。同样的,输出的数字必须四舍五入保留到小数点后两位(精确到分),并且在输出的时候必须在前面输出美元符号$表示货币,并以换行符作为输出的结束。在输出中不能包括任何的空格或其它字符。
输入示例:
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
程序运行效果示例:
来源:
杨珂翻译自POJ:1004
1019 判决素数个数
问题描述:
输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。
输入:
两个整数X和Y,X和Y的大小任意。
输出:
输出一个整数,结果可以是0,或大于0的整数。
输入示例:
1 100
输出示例:
25
提示:
自然数2是最小的素数。
程序运行效果示例:
来源:
POJ:3177
1020 星号三角形
问题描述:
编写一个程序输出一个由n行星号“*”构成的三角形。
输入:
输入只有一行,即由星号构成的三角形的行数n。
输出:
输出由星号构成的n行三角形,同一行中每两个星号之间用空格分开,形状如输出示例所示。
输入示例:
5
输出示例:
*
* *
* * *
* * * *
* * * * *
提示:
最后一行星号前面不要有空格,否则会造成Presentation Error。
程序运行效果示例:
来源:
杨珂
1021 字母三角形
问题描述:
编写程序,输出一个由n行大写字母组成的三角形。
输入:
输入只有一个正整数n(1≤n≤20),表示要输出的字母三角形的行数。
输出:
输出一个由n行大写字母构成的三角形,如输出示例所示。同一行中每两个大写字母之间用一个空格分开。保证每行的第一列不全为空格。
输入示例:
4
输出示例:
A
B A B
C B A B C
D C B A B C D
提示:
最后一行字母前面不要有空格,否则会造成Presentation Error。
程序运行效果示例:
来源:
杨珂
1022 倒置的字母三角形
问题描述:
请你编写一段程序,输出一个由指定行数的大写字母构成的倒置三角形,这个字母三角形必须满足下列条件(请参照示例):
l 倒置三角形的最下角顶点是固定字符‘A’;
l 倒置三角形的中心线上的字符从下到上依次是‘A’、‘B’、‘C’、……;
l 倒置三角形每一行上的字母必须按中心线左右对称:在中心线左侧,字母依次减小,在中心线右侧,字母依次增大;
l 倒置三角形每一行上的每两个字母之间用一个空格分开,第一行的第一个字母前没有空格。
输入:
输入只有一个整数,即倒置字母三角形的行数n(1≤n≤10)。
输出:
输出指定行数的倒置字母三角形。
输入示例:
4
输出示例:
G F E D E F G
E D C D E
C B C
A
提示:
注意观察每一行中大写字母的变化规律。
第一行是数字三角形的底边,在这一行的第一个字母前不应该输出任何空格。
程序运行效果示例:
来源:
杨珂
1023 求字符串长度
问题描述:
求一个长度不大于100的字符串的长度,要求不使用strlen方法,通过自定义的函数实现字符串长度的计算。
函数定义为:int GetStrLen(char *pStr)
输入:
一行字符串,使用(gets(str)方法读取此行字符串)。
输出:
输出只有一行,只包含一个整数,表示字符串的长度。
输入示例:
I love Beijing.
输出示例:
15
程序运行效果示例:
来源:
POJ:2681
1024 首字母大写
问题描述:
对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。每个单词之间用除了字母以外的其它字符分割开来。
输入:
输入一行:待处理的字符串,字符串长度小于等于80。
输出:
输出一行:经过转换后的字符串,字符串中的每个单词都是首字母大写的。
输入示例:
if so, you already have a google account. you can sign in on the right.
输出示例:
If So, You Already Have A Google Account. You Can Sign In On The Right.
提示:
注意单词之间的分隔符可以是除了字母以外的任意字符,包括空格、标点符号或者数字等。
程序运行效果示例:
来源:
POJ:2690
1025 字符替换
问题描述:
把一个字符串中特定的字符用给定的字符替换,得到一个新的字符串。
输入:
输入有多行,第一行是要处理的字符串的数目n。
其余各行每行由三个字符串组成,第一个字符串是待替换的字符串,字符串长度小于等于30个字符;
第二个字符串是一个字符,为被替换字符;
第三个字符串是一个字符,为用于替换的字符。
输出:
有多行,每行输出对应的替换后的字符串。
输入示例:
1
hello-how-are-you o O
输出示例:
hellO-hOw-are-yOu
程序运行效果示例:
来源:
POJ:2700
1026 忽略大小写比较字符串大小
问题描述:
一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按ASCII码值大小比较),直到出现不同的字符或遇到‘\0’为止。如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如“Hello”和“hello”,在忽略字母大小写时是相等的。请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。
要求用一个自定义函数实现忽略大小写的比较过程,用函数的返回值表示比较的结果:若返回值为0表示两个字符串相等;若返回值为1表示第一个字符串比第二个字符串大;若返回值为-1表示第一个字符串比第二个字符串小。
函数定义为:int MyStrCmp(char *pStr1,char *pStr2)
输入:
输入数据共有两行,每行一个字符串,字符串中可能包含空格和其它非字母字符,并且每个字符串长度都不超过80个字符。
输出:
如果第一个字符串比第二个字符串小,输出一个字符“<”;
如果第一个字符串比第二个字符串大,输出一个字符“>”;
如果两个字符串相等,输出一个字符“=”。
输入示例:
Hello
hello
输出示例:
=
程序运行效果示例:
来源:
POJ:2721
1027 和数
问题描述:
给定一个整数序列,判断其中有多少个数,等于数列中其它两个数的和。比如,对于数列1 2 3 4,这个问题的答案就是2,因为3 = 2 + 1,4 = 1 + 3。
输入:
第一行是一个整数T(1≤T≤100),表示一共有多少组测试数据。
接下来的每组测试数据共两行,第一行是数列中数的个数n(1≤n≤100),第二行是由n个整数组成的数列。
输出:
对于每组测试数据,输出一个整数(单独占一行),就是数列中等于其他两个数之和的数的个数。
输入示例:
2
4
1 2 3 4
5
3 5 7 9 10
输出示例:
2
1
程序运行效果示例:
来源:
POJ:3721
1028 487-3279
问题描述:
企业喜欢用容易被记住的电话号码,让电话号码容易被记住的一个办法是将它写成一个容易记住的单词或者短语。例如,你需要给Waterloo大学打电话时,可以拨打TUT-GLOP。有时,只将电话号码中部分数字拼写成单词。例如,当你晚上回到酒店,可以通过拨打310-GINO来向Gino’s订一份pizza。让电话号码容易被记住的另一个办法是以一种好记的方式对号码的数字进行分组。通过拨打Pizza Hut的“三个十”号码3-10-10-10,你可以从他们那里订pizza。
电话号码的标准格式是7位十进制数,并在第3、第4位数字之间有一个连接符。电话号码拨号盘提供了从字母到数字的映射,映射关系如下:
A、B和C映射到2
D、E和F映射到3
G、H和I映射到4
J、K和L映射到5
M、N和O映射到6
P、R和S映射到7
T、U和V映射到8
W、X和Y映射到9
Q和Z没有映射到任何数字,连字符不需要拨号,可以任意添加和删除。TUT-GLOP的标准格式是888-4567,310-GINO的标准格式是310-4466,3-10-10-10的标准格式是310-1010。如果两个号码有相同的标准格式,那么它们就是等同的(相同的拨号)。
假设你的公司正在为本地的公司编写一个电话号码簿。作为质量控制的一部分,你想要检查是否有两个和多个公司拥有相同的电话号码。
输入:
第一行是一个整数,指定电话号码簿中号码的数量(最多100000),余下的每行是一个电话号码。每个电话号码由数字、大写字母(除了Q和Z)以及连接符组成。
输出:
对于每个重复出现的号码产生一行输出,输出是号码的标准格式、紧跟一个空格,然后是它的重复次数。如果存在多个重复的号码,按照号码的字典升序输出。如果没有重复的号码,输出一行:
No duplicates.
输入示例:
12
4873279
ITS-EASY
888-4567
3-10-10-10
888-GLOP
TUT-GLOP
967-11-11
310-GINO
F101010
888-1200
-4-8-7-3-2-7-9-
487-3279
输出示例:
310-1010 2
487-3279 4
888-4567 3
程序运行效果示例:
来源:
POJ:2974
1029 密码翻译
问题描述:
在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密。简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,则可得到一个简单的加密字符串。
要求自己编写一个函数实现对字符串的翻译过程。主函数即main函数只负责从终端读取字符串并将其传递给函数翻译,并最后把翻译结果输出到屏幕上即可。
输入:
第一行是字符串的数目n,(也要使用gets(s)读取字符串,再用n=atoi(s)获得整数数值)。
其余n行每行一个字符串,用gets(s)方式读取这一行字符串。每个字符串长度小于等于80个字符。
输出:
输出每行字符串的加密字符串。
输入示例:
1
Hello! How are you!
输出示例:
Ifmmp! Ipx bsf zpv!
提示:
atoi(s)函数用于把一个字符串转换为一个整型数据,该函数定义在stdlib.h中。
程序运行效果示例:
来源:
POJ:2702
1030 垂直直方图
问题描述:
输入4行全部由大写字母组成的文本,输出一个垂直直方图,给出每个大写字母出现的次数。
注意:只用输出大写字母的出现次数,不用输出空白字符,数字或者标点符号的出现输出次数。
输入:
输入包括4行由大写字母组成的文本,每行上字符的数目不超过80个。
输出:
输出包括若干行。其中最后一行给出26个大写英文字母,这些字母之间用空格隔开。前面的几行包括空格和星号,每个字母出现几次,就在这个字母的上方输出一个星号。注意:输出的第一行不能是空行。
输入示例:
THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.
THIS IS AN EXAMPLE TO TEST FOR YOUR
HISTOGRAM PROGRAM.
HELLO!
输出示例:
*
*
* *
* * * *
* * * *
* * * * * *
* * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * *
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
程序运行效果示例:
来源:
POJ:2800
1031 统计字符数
问题描述:
判断一个由a~z这26个字符组成的字符串中哪个字符出现的次数最多。
输入:
第一行是测试数据的组数n,每组测试数据占1行,是一个由a~z这26个字符组成的字符串,每组测试数据之间有一个空行,每行数据不超过1000个字符且非空。
输出:
n行,每行输出对应一个输入,包括出现次数最多的字符和该字符出现的次数,中间是一个空格。如果有多个字符出现的次数相同且最多,那么输出ASCII码最小的那一个字符。
输入示例:
2
abbccc
adfadffasdf
输出示例:
c 3
f 4
提示:
每两组测试数据之间的空行是属于输入数据,注意理解和把握处理空行数据的方式。
程序运行效果示例:
来源:
POJ:2742
1032 子串
问题描述:
现在有一些由英文字符组成的大小写敏感的字符串,你的任务是找到一个最长的字符串x,使得对于已经给出的字符串中的任意一个y,x或者是y的子串,或者x中的字符反序之后得到的新字符串是y的子串。
输入:
输入的第一行是一个整数t(1≤t≤10),t表示测试数据的数目。对于每一组测试数据,第一行是一个整数n(1≤n≤100),表示已经给出n个字符串。接下来n行,每行给出一个长度在1和100之间的字符串。
输出:
对于每一组测试数据,输出一行,给出题目中要求的字符串x的长度。
输入示例:
2
3
ABCD
BCDFF
BRCD
2
rose
orchid
输出示例:
2
2
程序运行效果示例:
来源:
POJ:2744
1033 基因检测
问题描述:
用一个字符串表示一段基因,例如:“CTATGGGTTT”。两段基因的相似度定义为它们所包含的最大公共子串的长度。例如:“CCTTGG”和“TGGGC”的最大公共子串为“TGG”,它的长度为3,则我们称“CCTTGG”和“TGGGC”的相似度为3。现给定两段基因,要求计算它们的相似度。
输入:
输入第一行包含一个正整数N(0<N<100),表示测试数据的数目;接下来N行,每行包含两个字符串(每个字符串长度小于等于20),用一个空格隔开,分别表示给定的两段基因。
输出:
对于每组测试数据输出一行,该行包含一个整数,表示给定基因段的相似度。
输入示例:
2
CCCCC TTTTTGGGGGCC
ACTGGG DDD
输出示例:
2
0
程序运行效果示例:
来源:
POJ:2678
1034 电文破译
问题描述:
有n行电文,每行电文都已按下面规律译成密码:
即第1个字母变成第26个字母,第2个字母变成第25个字母,……,第26个字母变成第1个字母。其它非字母字符不变。
现在我们已截获n行采取这种方式加密的电文,为了帮助情报员获取正确情报,需要你编写一段程序将加密的电文译回原文。
输入:
输入有若干行,第一行是一个正整数n,表示共需破译n行电文。
其后的每行都各是一个字符串,表示截获的加密电文。每行电文最多可以有200个字符,其中包括了大小写字母、空格、标点符号等各种字符。
输出:
对应于每行输入应该输出一行,即对应破译后的电文原文。
输入示例:
2
Dv droo wrhxfhh gsrh kilyovn glnliild.
R'ev xszmtvw nb nrmw.
输出示例:
We will discuss this problem tomorrow.
I’ve changed my mind.
程序运行效果示例:
来源:
杨珂
1035 浮点数格式
问题描述:
输入n(0<n≤10000)个浮点数,要求把这n个浮点数重新排列(并非排序,而是对齐)后再输出。每个浮点数中都有小数点且总长度不超过50位。
输入:
第1行是一个正整数n(n≤10000),后面n行每行一个浮点数,每个浮点数中都保证小数点会出现。浮点数的长度不超过50位,注意这里的浮点数会超过系统标准浮点数的表示范围。
输出:
n行,每行对应一个输入。要求每个浮点数的小数点在同一列上,同时要求首列上不会全部是空格。
输入示例:
2
-0.34345
4545.232
输出示例:
-0.34345
4545.232
程序运行效果示例:
来源:
POJ:2799
1036 谁拿了最多的奖学金
问题描述:
某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:
l 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;
l 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得;
l 成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得;
l 西部奖学金,每人1000元,期末平均成绩高于85分(>85)的西部省份学生均可获得;
l 班级贡献奖,每人850元,班级评议成绩高于80分(>80)的学生干部均可获得;
只要符合条件就可以得奖,每项奖学金的获奖人数没有限制
展开阅读全文