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