C++100题(上)

更新时间:2024-07-08 12:39:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1000 A+B Problem

Time Limit:1000MS Memory Limit:10000K

Total Submit:1763 Accepted:840

Description

计算a+b的值

Input

两个整数a,b (0<=a,b<=1000)

Output

请输出a与b的和

Sample Input

1 2

Sample Output

3

Hint

输出中不要任何其他多余字符

1001 求两个数中的最大值

Time Limit:1000MS Memory Limit:65536K

Total Submit:1635 Accepted:808

Description

对于任意给定取值区间为[-32768,32767]的两个整数,求其最大值。

Input

两个整数a,b,整数之间用空格分隔。

Output

输出两个数中的最大值。

Sample Input

8 9

Sample Output

9

Hint

注意2个输入之间不是用逗号分隔的,输出的结果不要有其他多余的字符,例如输出 max=9 ,这样的输出不满足题目要求。

Source

1002求五个数中的最大值

Time Limit:1000MS Memory Limit:65536K

Total Submit:1624 Accepted:542

Description

对于任意给定取值区间在[-32768,32767]的五个整数,求其最大值。

Input

有3个测试用例,每个测试用例的输入占一行。在这一行中有五个整数,整数之间用空格隔开。

Output

对每个测试用例输出一行,包含一个整数,是五个中的最大值。

Sample Input

8 9 7 1 5 10 20 30 4 6 100 1 10 50 70

Sample Output

9 30 100

Hint

注意:你的程序必须能够处理3组数据,并且每输出一组数据后必须换行。

Source

1003五个数排序

Time Limit:1000MS Memory Limit:65536K

Total Submit:1248 Accepted:419

Description

对于任意给定的5个整数,请按从小到大的顺序排序。整数的取值范围在[-32768,32767]。

Input

包含6个测试用例,对于每个测试用例,其输入占一行。在这一行中包含了5个整数,整数之间用空格隔开。

Output

请按如下示例的形式输出。每个测试用例的输出单独占一行,输出排序后的5个整数。

注意,输出中的“Case”首字母要大写,其后有一个空格。冒号为半角冒号,其后也有一个空格。整数之间用空格隔开。每个测试用例输出的最后一个整数后面没有空格。

Sample Input

9 3 2 7 5 1 3 5 7 8 5 3 9 7 2 6 8 7 4 3 7 9 3 2 5 3 2 7 3 2

Sample Output

Case 1: 2 3 5 7 9 Case 2: 1 3 5 7 8 Case 3: 2 3 5 7 9 Case 4: 3 4 6 7 8 Case 5: 2 3 5 7 9 Case 6: 2 2 3 3 7

Hint

有很多种方法实现上述任务。下面提供的思路仅供初学者参考! 可分成4趟。

第一趟:用第1个数与其余的4个数比较,如果发现其中有某个数比它小,则交换这2个数的值。这样5个数中的最小值一定放在第1个变量中了。

第二趟:用第2个数与其余的3个数比较,如果发现其中有某个数比它小,则交换这2个数的值。这样4个数中的最小值一定放在第2个变量中了。

第三趟:用第3个数与其余的2个数比较,如果发现其中有某个数比它小,则交换这2个数的值。这样3个数中的最小值一定放在第3个变量中了。

第四趟:用第4个数与其余的1个数比较,如果发现其中有某个数比它小,则交换这2个数的值。这样2个数中的最小值一定放在第4个变量中了。剩下在最后一个变中的值一定是最小值了。

这样有序结果就依次保存在这5个变量中,依次输出即可。

Source

简单统计

Time Limit:1000MS Memory Limit:65536K

Total Submit:840 Accepted:376

Description

某次实验之后得到了很多组实验数据,现在需要你统计每组实验数据中的最大值,最小值,平均值。

Input

第一行包含一个整数n(1<=n<=100),表示实验数据的组数(即测试用例的个数)。每个测试用例的输入有2行,第一行包含一个整数k (1<=k<100),表示这组实验中数据的个数。第二行中包含k个实验数据(注意这些实验数据可能有小数点)。

Output

每个测试用例的输出单独占一行,分别输出该组实验数据中的最大值、最小值、平均值,结果全部保留2位小数。

Sample Input

2 3 3 4 5 5

2.3 2.5 1.2 3.0 4.1

Sample Output

5.00 3.00 4.00 4.10 1.20 2.62

Hint

1、对于有小数点的数据应该使用double型变量来存放(而不是存放整数的int型),double型在输入和输出中的格式控制符是%lf,其中的lf是Long Float的第一个字母。

2、如何在输出中保留2为小数点呢?下面举例说明,例如double型变量a中存放了一个值3.14159265,那么输出语句printf(\所输出的结果就是3.14,格式控制符中的\表示小数点后面保留2为小数。

小白兔智斗狐狸

Time Limit:1000MS Memory Limit:65536K

Total Submit:135 Accepted:45

Description

大家都知道狐狸很狡猾,但是狐狸想要抓到兔子也没有那么容易,因为它也有“狡兔三窟”的名声。下面就让我们来看看这场狐狸与兔子的角逐吧!

在某个山上有n个洞,住着一只狐狸和一只兔子,这n个洞呈圆周形排列,分布在山的周围,每个洞之间有一定的距离。狐狸总想去捉吃兔子。有一天,兔子远远地看见了狐狸,便对狐狸说:“这样吧,我们玩个游戏,把n个洞依次编成1至n号,你住的洞编号为第n号洞,我藏在另外的某个洞里。你从自己的洞出发,沿着一个方向走,第一次走一个间隔(相邻的两洞之间为一个间隔),进入1号洞寻找我,第二次走2个间隔,进3号洞寻找我,依此类推,次数不限,如果我被你找到了,你就甘愿成为你的美餐,如何?。狐狸心想,不限次数,只要我努力找,总可以找到小白兔的。结果狐狸找呀找呀,找了三天三夜也没有找到小白兔。

请你帮小白兔一个忙,如果给定洞的个数n,它应该躲在哪些洞里才是永远安全的。

Input

第一行包含一个整数k(1<=k<=100),表示测试用例的个数。对于每个测试用例的输入占1行,包含一个整数n (3<= n<=1000)。

Output

请将安全的洞号从小到大依次输出,洞号之间用空格隔开,最后一个洞号之后没有空格但有回车。如果没有洞是安全的,则输出”no safe caves”,每个测试用例的输出各占一行。

Sample Input

2 10 4

Sample Output

2 4 7 9

no safe caves

Hint

注意利用余数的同余性质:

① a≡ b (mod n) => a+c ≡ b+c (mod n)

② a≡ b (mod n), 且c≡ d (mod n) => ac≡ bd (mod n)

Source

游乐园的收入

Time Limit:1000MS Memory Limit:65536K

Total Submit:718 Accepted:456

Description

大家欢游乐园公司的财务部每天都需要计算当天的营业总收入。该游乐园设有若干个游乐项目,全部项目的当天收入就是游乐园的日收入。财务部的工作非常忙,希望你能编程帮忙实现日收入的计算。

声明:本图片来自链接

http://image.http://www.wodefanwen.com//i?tn=baiduimage&ct=201326592&lm=-1&cl=2&word=????μ??1?áà??°&rn=21&pn=180&ln=2000

Input

第一行包含一个整数n(1<=n<=100),表示共有n天的收入数据。 对于每天的收入数据分2行。第一行包含一个整数k(1<=k<=50),表示当天有k个有了项目,接下来的一行中有k个整数表示每个项目的当日收入。

Output

分别求出每天游乐园的日收入。每个日收入的输出占单独一行。

Sample Input

3 4

300 200 280 100 5

280 170 400 200 50

2 65 73

Sample Output

880 1100 138

Source

高次方的尾数

Time Limit:2000MS Memory Limit:65536K

Total Submit:366 Accepted:99

Description

求x的y次方的最后k位数。

Input

第一行包含一个整数n(1≤n≤100),表示测试用例的个数。

每个测试用例的输入有一行,整数x,y,k。其中,0<x≤1000,0≤y≤1000; 0<k≤4;

Output

对每个测试用例输出一行。输出x的y次方的最后k位数(忽略前导0)。

Sample Input

2

2 10 3 10 1000 4

Sample Output

24

0

Hint

注意:高次方的结果会超过32位二进制整数的表示范围。

Source

用@填充的矩形图案

Time Limit:2000MS Memory Limit:65536K

Total Submit:941 Accepted:646

Description

向屏幕输出由字符构成的实心矩形图案。根据读入的n值,输出以@为填充字符、宽为20、高为n的字符矩形。

Input

输入数据只有一个正整数n(1≤n≤50)。

Output

输出以@为填充字符、宽为20、高为n的字符矩形。显然为了结束每行字符,在输出20个@字符后,应输出一个回车。最后一行也必须与前面一样输出回车,否则提交系统不会予以认可。

Sample Input

5

Sample Output

@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@

@@@@@@@@@@@@@@@@@@@@

Source

正方形面积

Time Limit:2000MS Memory Limit:65536K

Total Submit:1163 Accepted:627

Description

根据读入的正整数值,输出其正方形的面积。

Input

输入第一行包含一个正整数k(0<k<100),表示有k组测试数据;接下来k行,每行包含一组测试数据。每组测试数据含有1个正整数n(1≤n≤10000)。

Output

对每组测试数据输出其正方形的面积,每个面积单独占一行。

Sample Input

4 1 3 5 7

Sample Output

1 9 25 49

Source

一个字符三角形

Time Limit:2000MS Memory Limit:65536K

Total Submit:717 Accepted:414

Description

根据读入的字符值,输出以该字符为填充字符的定长等腰三角形。

Input

输入数据只有一个字符值c(?A?≤c≤?Z?)。

Output

输出以c为填充字符、宽为7、底边长为13的等腰三角形。同样,每行结束时应回车。

Sample Input

A

Sample Output

A AAA AAAAA AAAAAAA AAAAAAAAA AAAAAAAAAAA AAAAAAAAAAAAA

Source

整数的立方和

Time Limit:2000MS Memory Limit:65536K

Total Submit:975 Accepted:643

Description

给定一个正整数k(1<k<50),求1到k的立方和m。即m=1×1×1+2×2×2 +…+ k×k×k。

Input

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

Output

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

Sample Input

5

Sample Output

225

Source

计算书费

Time Limit:2000MS Memory Limit:65536K

Total Submit:525 Accepted:399

Description

下面是一个图书的单价表: 《计算概论》 28.9 元/本

《数据结构与算法》 32.7 元/本 《数字逻辑》 45.6元/本

《C++程序设计教程》 78 元/本 《人工智能》 35 元/本

《计算机体系结构》 86.2 元/本 《编译原理》 27.8元/本

《操作系统》 43 元/本 《计算机网络》 56 元/本 《JAVA程序设计》 65 元/本

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

Input

输入包含一组测试数据,每组测试数据包含10个整数p[i](0≤p[i]≤100, 1≤i≤10),分别表示购买的《计算概论》、《数据结构与算法》、《数字逻辑》、《C++程序设计教程》、《人工智能》、《计算机体系结构》、《编译原理》、《操作系统》、《计算机网络》、《JAVA程序设计》的数量(以本为单位)。每两个整数用一个空格分开。

Output

对于每组测试数据,输出一行。该行包含一个浮点数f,表示应付的总费用。精确到小数点后两位。

Sample Input

1 5 8 10 5 1 1 2 3 4

Sample Output

2140.20

Hint

可用printf(\来输出sum的值,并精确到小数点后两位。

Source

星期几

Time Limit:1000MS Memory Limit:65536K

Total Submit:613 Accepted:359

Description

我们经常需要知道若干天以后是星期几,以便安排我们的活动。通常我们会用查日历表的办法得到答案。但是,不查日历表,如果告诉你今天是星期几,你是否能很快得出若干天后是星期几吗?

Input

输入中的第一行包含一个整数n(1<=n<=100),表示测试用例的个数。

对于每个测试用例,包含2个整数m,k。m表示当前是星期几,m为0表示星期天,1表示星期一,2表示星期二,依此类推。 k表示,从今天开始经过k天。

Output

对每个测试用例输出一行,包含一个整数,表示k天后是星期几。m为0表示星期天,1表示星期一,2表示星期二,依此类推。

Sample Input

2 1 8 3 11

Sample Output

2 0

Source

证件连续编号

Time Limit:1000MS Memory Limit:65536K

Total Submit:647 Accepted:444

Description

有某单位给发放的大批量证件时,需要有个程序帮助实现自动编号。

比如,已知本批证件的第一个号码为8号,需要连续发放5个证件,那么本次发放的号码就是8 9 10 11 12

Input

包含两个整数n,k,n表示要发放的第一个号码,k表示需要发放k个。

Output

输出从n开始的连续k个号码。

Sample Input

10 5

Sample Output

10 11 12 13 14

Source

蛟龙翻身

Time Limit:1000MS Memory Limit:65536K

Total Submit:776 Accepted:499

Description

生活在东海里的一条长长的蛟龙发现其身后有一怪物,于是掉转头去追赶。我们用一串有序的数字表示蛟龙的身体,每一个数字表示

龙身的一小节。请你编程实现蛟龙身体的180度掉头。

Input

共有2行,第一行包含整数k,表示龙身的小节个数。第2行,包含k个整数,表示龙身的各个小节。

Output

输出1行,为180度调头后的结果。

Sample Input

5

1 2 3 4 5

Sample Output

5 4 3 2 1

Source

龟兔赛跑

Time Limit:1000MS Memory Limit:65536K

Total Submit:787 Accepted:343

Description

乌龟和兔子举行了一场赛跑,骄傲的兔子跑跑停停,乌龟自始至终不敢松懈。当发号令响后,我们每隔固定时间间隔记录此时刻乌龟和兔子从起点跑出的距离。现在需要你编程回答在各个时刻谁领先或者是平局。

Input

第一行有一个整数k(1≤k≤100),表示共记录了k个时刻的数据。

其后的k行,每行包含2个整数,分别表示乌龟、兔子所跑出的距离。

Output

对每个时刻输出一行,输出当前时刻和领先者的信息,其格式请参见Sample Output。

Sample Input

3 1 2 4 3 5 5

Sample Output

time 1:rabbit leading time 2:tortoise leading time 3:drawing

Hint

注意输出中不要有不必要的多有字符!

Source

银行的日交易量

Time Limit:1000MS Memory Limit:65536K

Total Submit:413 Accepted:324

Description

某银行需要统计日交易量,每存进一笔或取出一笔算做一次交易,日交易量为存入和取出金额的绝对值之和。存入用正值表示,取出用负值表示。请你帮忙编程实现。

Input

第一行包含一个非负整数k,表示被交易的笔数。其后一行包含k个整数,表示每笔交易的金额。

Output

输出其日交易量。

Sample Input

4 3 0 -4 -5

Sample Output

12

Source

奇偶校验

Time Limit:1000MS Memory Limit:65536K

Total Submit:362 Accepted:246

Description

在数字信息编码成二进制后,这些二进制的编码数据在存储、传输的过程中可能会发生翻转。例如,原来是0的位变成了1,原来是1的位变成了0。根据对大量数据的统计分析,结果表明,这些错误翻转中一位翻转发生的概率最大。如果我们能检测到一位翻转,那么就能检查出大多数据的错误的情况。因此,我们在原编码的最后设置一个校验位,如果是奇校验,那么包括校验位在内的所有为1的位的个数是奇数个;如果是偶校验,那么包括校验位在内的所有为1的位的个数是偶数个。假如我们采用奇校验,现在请你编程计算校检位的值。

Input

第一行有2个整数k,n(1≤k,n≤100),第一个整数k表示编码的位数,第二个整数n表示编码的个数。其后的n行中,每行表示一个编码,每行包含k个用空格分隔的整数,这些整数取0或1。

Output

输出带有奇偶校验位的编码。每个编码单独一行。

Sample Input

7 3

1 0 1 0 1 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0

Sample Output

1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0

Source

学生成绩的等级

Time Limit:1000MS Memory Limit:65536K

Total Submit:1202 Accepted:478

Description

给定某个学生的成绩s,请根据下列分数段的给出相应的等级。

s<0或s>100为error,0≤s<60为fail,60≤s<70为pass,70≤s<80为medium,80≤s<90为good,90≤s≤100为excellent。

Input

第一行包含一个整数n,表示有n个学生。其后的n行,每行包含一个整数s,表示学生成绩。

Output

输出每个学生的等级,每个学生单独占一行。

Sample Input

3 150 60

75

Sample Output

error pass medium

Source

横卧式菱形图案

Time Limit:1000MS Memory Limit:65536K

Total Submit:668 Accepted:270

Description

输出横卧式空心菱形图案。

Input

输入数据只有1行,包含2个整数m, n和一个字符型数据c(1≤m, n≤50)。

Output

输出斜边和横边分别为m,n个c字符构成的横卧式空心菱形图案。斜边的相邻两行中下行向右与上行错开一个字符的位置。

Sample Input

4 5 *

Sample Output

***** * * * * *****

Hint

输入时请使用scanf(\注意各个格式控制符之间用空格隔开。

Source

1021垂立式菱形图案

Time Limit:1000MS Memory Limit:65536K

Total Submit:383 Accepted:208

Description

输出由*号构成菱形图案。

Input

包含一个整数k(1≤k≤40),表示每条菱形边上*号的个数。

Output

输出由*构成的菱形图案。要求,相邻2行中的同一菱形边上的*号,在行方向上相差一个字符的位置。

Sample Input

4

Sample Output

* * * * * * * * * * * *

Hint

菱形的空心处实际上输出了空格。

Source

大奖赛计分

Time Limit:1000MS Memory Limit:65536K

Total Submit:493 Accepted:333

Description

学校举行了校园歌手大奖赛,大奖赛有10名评委,每个评委给参赛选手打分。该选手的最后得分就是去掉一个最高分,去掉一个最低分后,取平均分作为选手的最后得分。

Input

输入中包含10个整数,分别表示是个评委的打分。

Output

输出选手的最后得分,结果保留2位小数。

Sample Input

89 90 70 69 88 70 90 63 89 87

Sample Output

81.50

Hint

注意输入数据是整数,但是输出结果是浮点数。如何保留2为小数,请查阅教材和资料。

Source

实心矩形图案

Time Limit:1000MS Memory Limit:65536K

Total Submit:700 Accepted:439

Description

输出由特定字符c构成的m行n列实心矩形图案。

Input

输入数据中包含2个整数n(1≤n, m≤50)和一个字符型数据c。它们之间都是用空格隔开。

Output

输出由特定字符c构成的m行n列实心矩形图案。

Sample Input

4 10 &

Sample Output

&&&&&&&&&& &&&&&&&&&& &&&&&&&&&& &&&&&&&&&&

Hint

本题的输入请使用scanf(“%d %d %c”,&m,&n,&c);的形式进行输入。注意在第二个%d与%c之间有一个空格。 为什么要加空格,原因如下:

如果在输入中既有整数数据又有字符串数据,那么输入的时候,应该注意:防止将整数数据后的分隔符(例如空格、回车、跳格)读入到字符型变量。解决的办

法是:将整数之后的分隔符写在对应的%d之后,这样就能忽略输入中的这个分隔符,从而使字符型变量读入正确的值。

Source

空心矩形图案

Time Limit:1000MS Memory Limit:65536K

Total Submit:671 Accepted:351

Description

向屏幕输出由#字符构成的m行n列的空心矩形图案。

Input

输入正整数m, n(1≤m, n≤80)。

Output

输出由#字符为边的m行n列的字符矩形图案。

Sample Input

4 7

Sample Output

####### # # # # #######

Hint

1:矩形内部的空心处实际上是空格字符填充的。 2:假定字符为#字符, 1行*1列的情形 :

#

2行*3列的情形 ### ###

3行*3列的情形 ### # # ###

Source

去空格

Time Limit:1000MS Memory Limit:65536K

Total Submit:532 Accepted:229

Description

编写一个程序,把任意给定的字符串中的空格全部删除。

Input

输入为一个或多个字符串,字符串最大串长是1000000个字符,这里所说的“一个字符串”是指以回车符结束为标志。

Output

输出删除空格后的字符串。除了去掉空格外,其余任何字符(包括回车符)原样输出。

Sample Input

hello,Wellcom to Acm! Programming is interesting!

Sample Output

hello,WellcomtoAcm!

Programmingisinteresting!

Hint

1:注意scanf和get输入的区别。

2:本题中并没有预先给出测试用例的个数,此时,必须利用读取输入数据时是否到达“文件尾(EOF,即End of File)”,例如本例的输入可以使用如下语句实现:

//此循环实现每循环一次就输入一个字符到字符变量onechar中(这个变量当然要先定义),直到EOF则结束循环。 while(scanf(\ 循环体中完成相应的处理任务即可。 }

Source

十全十美

Time Limit:1000MS Memory Limit:65536K

Total Submit:913 Accepted:270

Description

大家都看过著名MV导演王岳伦的电影处女作《十全九美》,对于这部以幽默、搞笑风格的古装片,相信大家都非常喜欢(没看过的同学一定要去看哦!)。

现在王导演遇到了个一个难题,想请聪明的你编一个程序帮他解决。王导演现在需要组织一个拍戏的班子,大家都知道,一个班子需要一帮个性各异、各具能力但又能很好相互互补、相互合作的成员,以圆满完成摄制任务。听说你学过程序,王导演需要你的帮助,当他知道某个人的每个个性特点后,需要知道什么样的人能与之互补合作。一个人的每个个性特点都表示为一个介于1-9的值,如果一个人的全部个性特点与另外一个人相应的个性特点值相加等于10,则认为他们就是十全十美的黄金搭档。相信你一定能帮他解决这个问题!

Input

输入的第一行中包含一个整数n,表示王导演共需考察的班子成员的个数。其后有n行,每一行有一个整数a,这个整数的位数大于等于1位,位数小于等10的6次方位。a的每一位表示该班子成员在某方面的个性特点值,每个个性特点值介于1到9之间。

Output

输出一个整数b,使得a与b的对应位数字相加等于10。

Sample Input

3 89 123 4567

Sample Output

21 987 6543

Source

数学王子

Time Limit:100MS Memory Limit:65536K

Total Submit:858 Accepted:270

Description

数学王子高斯小时候就能利用规律很快的将1+2+……+100算出来。现在有一个更有趣的问题,要求1+2+……+10^n,你能像高斯一样快速求出结果吗?

Input

第一行有一个整数t,表示有t组数据,以下一共t行,每行一个整数n,(0<=n && n<=1000)

Output

求上面那个问题的结果。

Sample Input

7 0 1 2 3 4 5 10

Sample Output

1 55 5050 500500 50005000 5000050000

50000000005000000000

Hint

首先发现结果中数字排列的规律,直接利用此规律求解。

Source

批改作业

Time Limit:1000MS Memory Limit:65536K

Total Submit:289 Accepted:130

Description

大家是否还记得我们小时候学汉字时的情形呢?相信那时候教我们的老师也是非常累的,因为他们要一个字一个字的看我们写的是否写错。现在,有一位在小学教英语的老师,布置给她的学生一个作业,将她在黑板上写的英文范文抄一遍。因为她教的是小学生,他们中有一部分人比较粗心,所以抄也抄出了很多错误,以致于老师批改作业的工作量变得相当大。现在,这位英语老师想请你帮忙,给

她写一个程序,来自动批阅学生的作业。具体规则如下:学生的作业只会出现抄错,不会出现漏抄和多抄字母或标点。也就是说,学生只能可抄错字母,不会抄错标点符号,批阅中记录下正确的字母总个数,将总的正确字母的个数除以短文总字符数(包括所有标点和空格)得出结果记为s,然后给出等级(s<60%为fail,60%≤s<70%为pass,70%≤s<80%为medium,80%≤s<90%为good,90%≤s≤100%为excellent)。你能帮她写出这个程序吗?

Input

第一行为一个整数n,表示有n个学生;

接下来一行为范文,字符串长度不超过1000;

接下来有n行,每行为第i个(i≤n)学生提交的作业,作业也为一个字符串。 (所有字符串只包括英文字母和标点符号和空格)

Output

对每个学生的作业给出等级。

Sample Input

2

Lost time is never found again. Lost time is never found again. Loxt txxe id ndddr ftsst axain.

Sample Output

student 1:excellent student 2:pass

Source

身份证升位

Time Limit:1000MS Memory Limit:65536K

Total Submit:63 Accepted:39

Description

现在大家使用的身份证都是18位号码,其实就在几年以前,身份证都是使用的15位号码。全中国十几亿人都要将15位的身份证号升至18位,工作量之大可想而知。现在假如你回到了身份证升位的时期,当地一个公安局想请你设计一款软件实现自动升位。 升位方法:将原十五位身份证出生年份由原来的2位升至4位(比如81升为1981,假设所有身份证的主人为1900-1999年出生)得到17位身份证码,再根据17位身份证码计算校验码,校验码加至号码尾即得18位身份证号码。 校验码是由十七位身份证码生成,生成方法如下: 校验码是由十七位身份证码生成,生成方法如下:

校验码公式: V=∑(ai×Wi)(mod 11) 2≤i≤18……………………………………(1) 其中, i----表示号码字符从右至左包括校验码在内的位置序号; ai----表示第i位置上的号码数值;

Wi----示第i位置上的加权因子(其值已定),其数值依据公式Wi=2^(i-1)(mod 11)计算得出,mod表示取余运算。

以34052419800101001C为例,其中C为校验码,根据公式(1)进行计算: V=(21+36+0+25+16+16+2+9+48++0+0+9+0+5+0+0+2) mod 11 = 2

然后根据计算的结果V,查下表得校验码,当C=10时,校验码为大写X。 校验码对应表

V的值 0 1 2 3 4 5 6 7 8 9 10 校验码C 1 0 X 9 8 7 6 5 4 3 2

查表v=2的校验码为X,所以18位号码为:34052419800101001X

Input

第一行为一个整数n(0<n≤10000);

接下来n行每行为一个待升位的十五位身份证号;

Output

对于每个待升位的十五位身份证号输出其对应的十八位身份证号。

Sample Input

3

340524800101001 430104891010253 430902871220803

Sample Output

34052419800101001X 430104198910102530 430902198712208036

Source

校内交通车

Time Limit:1000MS Memory Limit:65536K

Total Submit:65 Accepted:29

Description

在农大最牛的车莫过于校内交通车了(以下简称校车),大家都喜欢坐校车去上课。我住在金岸,到七教上课经常懒得走,所以就难免不了要坐校车了^_^。

为了以最快的速度从金岸到七教,现在我采用以下规则:

1.我在金岸门口等车,当第一辆校车来时,我直接坐校车往七教走,假设我上车不需要花费时间,且校车不再载其他人。

2.如果在途中有后面的校车要超过我坐的校车时,我直接跳上后面速度快的校车,假设这其中也不需要花费额外的时间。

金岸到七教的距离记做D。每辆校车到达金岸门口的时间记做C,每辆车有一个恒定不变的速度V.每天有M辆校车经过金岸门口。

现在我想知道我到达七教时所需要的最短时间,这样我就可以知道我是否会迟到,你能帮我吗?

Input

第一行包含一个整数N(0

每组测试数据的首行包含两个整数M(1<=M<=10),D(1<=D<=1000,km)。 以下M行每行包含2个整数V(1<=V<=40,km/h)和C(以分钟为单位)。

Output

我到达七教的最短时间,精确到小数点后两位。

Sample Input

1 3 10 3 6 10 30 4 3

Sample Output

90.00

Source

1031奖学金测评

Time Limit:1000MS Memory Limit:65536K

Total Submit:92 Accepted:44

Description

每年的十月份就是同学们最关注的时候了,因为此时一年一度的评奖评优又开始了。大家都在忙碌着自己哪项该打多少分,然后把自己的各项得分反馈到班长处。我们的班长同学确实够累了,他得把每位同学的各项分加起来,再经过一些计算,然后还要排序。好在我们是信科院的,就把这些东西就交给电脑去处理吧,让班长们也轻松轻松。其实做个这样的数据自动处理的程序也比较简单,其中一种实现的方法就是同学们按照固定的格式把各自的各项分数通过E-mail发到班长的邮箱,然后程序通过POP3协议自动获取同学们发的所有邮件,再对邮件进行简单的分析,则可以得到所需要的每位同学的数据。假设这个程序的前几步已经完成,并且数据已经经过初步的分析和计算,现在已经得到了每位同学的姓名,德育分,智育分和文体分,想请你继续完成这个程序,利用这些数据得出每位同学的最终分数和全班的排名。

每位同学的最终分数为各项的加权得分之和,加权得分即为该项得分乘以相应的权值。德育的权值为30%×3,智育的权值为40%×3,文体的权值为30%×3,例如某位同学的智育分为137.4,则其智育分的加权得分为:137.4×40%×3=164.9(结果保留了一位小数)。

Input

第一行为一个整数n(0≤n≤50);

接下来n行为每位同学反馈的信息:从左往右依次为姓名(不超过8个字符),德育分,智育分,文体分。(分数为浮点型数据)

Output

按最终得分从高到低排序,输出结果。 格式如下:

第一行输出依次输出\左靠齐占9个宽度)\左靠齐占10个宽度)\右靠齐8个宽度)。

接下来有n行,每行一个同学的名次(左靠齐4个宽度),姓名(右靠齐8个宽度),最终得分(右对齐15个宽度),最终得分保留1位小数。

Sample Input

4 aa bb cc dd

24 25 16 25

36.5 137.4 87.4 93.2

74 88 74 83

Sample Output

rank name score 1 bb 266.6 2 dd 209.0 3 cc 185.9 4 aa 132.0

Source

自动发声报数器之长数版

Time Limit:1000MS Memory Limit:65536K

Total Submit:17 Accepted:7

Description

自动发声报数装置在生活的许多场合下有应用。譬如说,在银行等排队取号后,营业窗口会依次自动发声报出可办理业务的号码。例如你取到了301号,则计算机会报出“三百零一号顾客请到某某窗口”。在医院等处缴费时,会有自动发声系统告知你应该缴费的金额。此外还有,在街头的身高体重测试机报告你的身高和体重时,或者在某些游戏结束后报告你获得的分数时,都应用了自动发声。发声的原理不复杂,计算机或单片机通过某种途径获得待发声的数据,分析出这个数字应该如何发音,然后合成为连续的语音信号控制扬声器发出声音。 你正好有机会到生产该种自动发声报数器的某某技术开发公司实习。为了考察一下你的编程能力,公司的技术总监给你布置了以下任务,你一定要不辱使命哦! 给定一个整数,请你输出这个数字的发音应该念成哪几个字。显然,这个任务仅仅是这个发声装置设计的发音分析部分。

Input

第一行包含一个整数n(1≤n≤200)表示测试用例的个数。其后的n行中,每行包含有一个整数k(0≤k<10^17,即10的17次方)。

Output

每个测试用例的输出单独占一行,输出整数k的发音对应的文字。\十百千万亿\分别用其拼音首字母的大写表示。

Sample Input

7 203 1008 12345 100000 1003040

9000000000000000 1234567890123456

Sample Output

2B03 1Q08

1W2Q3B4S5 1SW

1BW3Q04S 9QWY

1Q2B3S4W5Q6B7S8Y9Q01S2W3Q4B5S6

Hint

按照人民教育出版社版小学数学教材上的读法法则是:

(1)从高位起一级一级的往下读;(2)读万级和亿级的数时 要按照个级的数的读法来读,再在后面加上“万”字或“亿”字;

(3)每级末尾的0都不读,其他数位上有1个0或连续几个0,都只读1个0。

Source

考试系统之选择题评分

Time Limit:1000MS Memory Limit:65536K

Total Submit:193 Accepted:148

Description

在很多的考试中都利用计算机判题,特别是选择题的判题非常适合计算机去完成,代替了人工繁重的重复性体力劳动,减少出错的机会,提高判卷效率等。自动化考试系统的应用越来越多,例如高考的标准化试卷考试,四六级英语考试,托福考试,计算机等级考试等。

现在要求你编写程序对某次考试中的单项选择题进行评分。

Input

第一行包含2个整数n,k,分别表示本次考试中试选择题的个数和每个选择题的分值。

第二行包含一个长度为n的字符串,表示标准答案。

第三行包含一个整数s,表示试卷的份数。其下的s行,每行代表一个应试者的答卷中选择题的作答。\表示应试者没有回答此题。

Output

按照顺序,每行输出一份试卷的选题题得分。

Sample Input

10 2

ABCDABCDAB 4

ABCDABCDAB BBCDDBCDAB AACDDBCDAA ABCDAXCDAB

Sample Output

20 16 14 18

Source

已知底高求三角形的面积

Time Limit:1000MS Memory Limit:65536K

Total Submit:502 Accepted:306

Description

已知三角形的底边长b和高为h,求三角形的面积。

Input

输入第一行包含一个正整数k(0<k<100),表示有k组测试数据;接下来k行,每行包含一组测试数据。每组测试数据含有2个正实数b, h。

Output

对每个测试用例,输出其面积,并单独占一行。结果保留3位小数。

Sample Input

3

1.5 4.0 3.2 5.789

5.642 7.13

Sample Output

3.000 9.262 20.114

Hint

对于带小数点的数据,由于float型是单精度的,精度较小,所以必须使用double型(双精度型)才能保证精度。对于double型的变量进行输入和输出,注意其格式控制符为%lf。 举例如下:

double a; //定义双精度变量a

scanf(\输入数据(可带小数点)的数据到变量a printf(\输出数据a,保留4位小数。

Source

已知三边求三角形的面积

Time Limit:1000MS Memory Limit:65536K

Total Submit:696 Accepted:326

Description

已知三角形的3边长a,b,c,求三角形的面积。

Input

输入第一行包含一个正整数k(0<k<100),表示有k组测试数据;接下来k行,每行包含3个正整数b, h。

Output

对每个测试用例,输出其面积,并单独占一行。结果保留4位小数。如果三边不能构成三角形,则输出-1。如果两边之和等于第三边也认为是不能构成三角形。

Sample Input

4 3 4 5 4 5 6 2 3 7 7 8 15

Sample Output

6.0000 9.9216 -1 -1

Hint

1:利用“海伦-秦九韶公式”计算三角形面积:△=s(s-a)(s-b)(s-c)的开平方。其中s=(a+b+c)/2。

2:注意数学公式的形式与C语言表达此公式的不同之处。 例如:

(1)在数学公式中的“乘法”运算符经常省略不写,但是在程序必须明确写出何处是乘法运算。例如上式应该写成s*(s-a)*(s-b)*(s-c)。

(2)如果变量a,b,c是整数时,计算s的时候一定注意数据类型的转换。应该写成s=(a+b+c)/2.0或者写成 s=(a+b+c)/(double)(2) 3:对于带小数点的数据,由于float型是单精度的,精度较小,所以必须使用double型(双精度型)才能保证精度。对于double型的变量进行输入和输出,注意其格式控制符为%lf。 举例如下:

double a; //定义双精度变量a

scanf(\输入数据(可带小数点)的数据到变量a printf(\输出数据a,保留4位小数。

4:求平方根可利用数学函数库中的现成函数,具体请自己查阅C程序设计教材和有关资料。

Source

素性测试(限时版)

Time Limit:1000MS Memory Limit:65536K

Total Submit:525 Accepted:170

Description

因为素数(也就是质数)在整数的有关运算中具有一些非常好的性质。在数据的加密中经常需要利用将素数来做一系列的运算。因此需要判断对于一个给定的数是否为素数。

Input

第一行有一个整数k(1≤k≤10000),即k各测试用例。 其后的k行中每行有一个整数n(2<=n<=1000000);

Output

每个测试用例占一行,如果是素数,则输出yes,否则,输出no。

Sample Input

3 5 23 112

Sample Output

yes yes no

Hint

可以考虑使用素数筛的方法对数据进行一次预处理保存在数组中,以后对每个测试用例,只需查这个数组即可得知是否为素数。

Source

本文来源:https://www.bwwdw.com/article/nzd.html

Top