跳转至

2021测试1

题目1 找出次数最多的数

Description

有一个长度为n的整数数组,请你找出数组中出现次数最多的整数。 如果有多个整数出现次数相同,且出现次数最大,请按照从小到大的顺序输出。

Input

输入有两行, 第一行是一个整数n,表示数组长度。(1<n<10000) 第二行是n个整数,a_1, a_2, ..., a_n。(1<=a_i<=100)

Output

输出为一行,如果有多个整数,请用空格间隔,最后一个整数后面不要输出空格。

Sample Input 1

5 1 1 2 3 4

Sample Output 1

1

Sample Input 2

5 1 2 3 4 5

Sample Output 2

1 2 3 4 5

Sample Input 3

3 10 10 11

Sample Output 3

10

题目2 借书还书

Description

一个小图书馆有n种书,每种书的数量为a_i,有m个顾客依次过来借书或者还书,请你来设计一个小程序统计借书还书情况。

Input

输入有多行 第一行为n,表示书的种类。(2<=n<=100) 第二行为n个数a_1,a_2,....,a_n,表示对应书的数量。(1<=a_i<=100) 第三行为m,表示用户数量。(5<=m<=100) 接下来有m行每行为两个整数x y,其中y表示书的类别,x为0表示借书,x为1表示还书(借书只能借一本,还书也只能还一本)。(即x=0或1, 1<=y<=n) 例如 0 2 表示借种类为2的书 1 3 表示还种类为3的书

Output

输出有m行,表示对m个顾客的借还书记录 顾客借第k种书时,如果图书馆第k种书的数量大于0,例如还剩5本,则输出'There are 5 books of kind k,success!' 顾客借第k种书时,如果图书馆第k种书的数量等于0,则输出'There is no book of kind k,sorry!' 顾客还第k种书时,则输出还书后该种书的数量,例如还书后第k种书有6本,则输出‘Success!There are 6 books of kind k now.’

Sample Input 1

3 2 2 2 4 0 1 0 1 0 1 1 2

Sample Output 1

There are 2 books of kind 1,success! There are 1 books of kind 1,success! There is no book of kind 1,sorry! Success!There are 3 books of kind 2 now.

题目3 矩阵变换

Description

有一个n×m的矩阵(1<n,m<100),需要对它进行一系列操作,操作有以下四种: 1 0 x c 1表示第一种操作,0表示对行操作,x表示第x行,c表示x行每个数字加上c 1 1 x c 1表示第一种操作,1表示对列操作,x表示第x列,c表示x列每个数字加上c 2 0 x c 2表示第二种操作,0表示对行操作,x表示第x行,c表示x行每个数字乘上c 2 1 x c 2表示第二种操作,1表示对列操作,x表示第x列,c表示x列每个数字乘上c 3 x y c 3表示第三种操作,x行y列的数字变成c 4 4表示第四种操作,矩阵所有数字变为0 请设计一个函数ChangeMatrix(int Matrix[][105],int n,int m,int operation, int parameters[])实现上述操作(注意Matrix的第二维长度要注明,否则编译错误) Matrix是一个二维数组,n表示矩阵的行,m表示矩阵的列,operation表示第几种操作,parameters表示操作的参数列表 例如: 对矩阵第x行每个数字加c可以先存储一个数组 parameters=[0,x,c] 然后调用函数:ChangeMatrix(Matrix,n,m,1,parameters) 对矩阵执行第4种操作可以先将参数列表设为空数组 parameters=[] 然后调用函数:ChangeMatrix(Matrix,n,m,4,parameters)

Input

输入有多行: 两个整数n,m表示矩阵有n行m列。 下面有n行,每行m个整数,为矩阵对应位置具体数值。 一个整数k,表示接下来有k次操作。(1<k<50) 下面有k行,每行一个操作,操作格式在上面已说明。 变换过程中矩阵中的值不会超过int范围,且始终为整数。

Output

k次操作结束后,打印整个矩阵。 输出n行,每行m个整数。

Sample Input 1

2 3 1 2 3 4 5 6 4 1 0 1 1 2 1 2 3 3 1 1 0 1 1 2 3

Sample Output 1

0 12 4 4 18 6

Hint

提示:矩阵可以用一个二维数组,定义方式如:int MM[105][105]; 第二维大小控制为105,与调用函数保持一致。

题目4 仿斐波那契数列

Description

仿斐波那契数列前三项为1,1, 1 从第四项开始Fb[i] = Fb[i-1] + Fb[i-3](i=4,5,6……) 对于给定n,请你输出仿斐波那契数列第n项的值。(4<=n<=58)

Input

一个整数n。(4<=n<=58)

Output

一个整数,表示仿斐波那契数列第n项的值。

Sample Input 1

4

Sample Output 1

2

Sample Input 2

5

Sample Output 2

3

Sample Input 3

10

Sample Output 3

19

题目5 换瓶子

Description

某商店规定:三个空汽水瓶可以换一瓶汽水。 小美手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的, 喝完以后剩4个空瓶子,用3个再换一瓶,喝掉这瓶,这时候剩2个空瓶子。然后问老板借一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。 现在小美手上有n个空汽水瓶,最多可以换多少瓶汽水喝?

Input

输入有多行,每行仅包含一个正整数n(1<=n<=100),表示小张手上的空汽水瓶数。n=0时表示输入结束,程序不用处理。

Output

对于每个测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。

Sample Input 1

3 10 81 0

Sample Output 1

1 5 40

题目6 正逆数

Description

啥是正逆数?比如一个数n,从左往右依次把第i位(i从1开始)的数字乘i次方后累加,如果得到的sum等于原数字n,就把它叫做正逆数。 例子:89就是个正逆数,因为8^1+9^2=89 现在给你2个整数n,m,请求出[n,m]范围内有几个正逆数 Input 输入仅有1行,包含用空格隔开的两个整数n,m,分别表示区间的左端和右端。 Output [n,m]范围内正逆数的数量

Sample Input 1

9 89

Sample Output 1

2

题目7 环形查找字符串

Description

有2个字符串,分别叫big和small,现在请你判断small是否出现在big中。在这里我们把big字符串视为首尾相连的,举几个例子: asdfgh是包含sdf的,显然。 asdfgh是包含has的,这是因为在asdfgh中,末尾的h再往下走就会回到开头的a。 hinter.png

Input

输入一共2行: 第1行是big字符串 第2行是small字符串

Output

如果出现过打印1,没出现过打印0

Sample Input 1

asdfg aa

Sample Output 1

0

Sample Input 2

asdfgh ha

Sample Output 2

1

Sample Input 3

qwert we

Sample Output 3

1 Hint 输入的第2行末尾没有换行,而是直接结束输入

题目8 判断能否构成回文

Description

啥是回文?如果一个字符串正着读和反着读一样,那就称为回文,比如abcccba。 现在给你一个字符串,请你判断:能否通过将其中的字母重新排列,使其变成回文字符串?

Input

仅有一行,是一个随机的字符串,以换行符号作为结尾

Output

1表示可以构成回文,0表示不行

Sample Input 1

abc

Sample Output 1

0

Sample Input 2

aab

Sample Output 2

1