样例输入 9 2 30 样例输出 30 9 2
12. 算法训练 2的次幂表示
时间限制:1.0s 内存限制:512.0MB
问题描述
任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。 将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+2^3+2^0
现在约定幂次用括号来表示,即a^b表示为a(b) 此时,137可表示为:2(7)+2(3)+2(0) 进一步:7=2^2+2+2^0 (2^1用2表示)
3=2+2^0
所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如:1315=2^10+2^8+2^5+2+1 所以1315最后可表示为:
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 输入格式
正整数(1<=n<=20000) 输出格式
符合约定的n的0,2表示(在表示中不能有空格) 样例输入 137 样例输出
2(2(2)+2+2(0))+2(2+2(0))+2(0) 样例输入 1315 样例输出
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 提示
用递归实现会比较简单,可以一边递归一边输出
11
13. 算法训练前缀表达式
时间限制:1.0s 内存限制:512.0MB
问题描述
编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值。输入格式为:―运算符对象1 对象2‖,其中,运算符为―+‖(加法)、―-‖(减法)、―*‖(乘法)或―/‖(除法),运算对象为不超过10的整数,它们之间用一个空格隔开。要求:对于加、减、乘、除这四种运算,分别设计相应的函数来实现。
输入格式:输入只有一行,即一个前缀表达式字符串。
输出格式:输出相应的计算结果(如果是除法,直接采用c语言的―/‖运算符,结果为整数)。
输入输出样例 样例输入 + 5 2 样例输出 7
14. 算法训练 Anagrams问题
时间限制:1.0s 内存限制:512.0MB
问题描述
Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,―Unclear‖和―Nuclear‖、―Rimon‖和―MinOR‖都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。 输入格式:输入有两行,分别为两个单词。
输出格式:输出只有一个字母Y或N,分别表示Yes和No。 输入输出样例 样例输入 Unclear Nuclear 样例输出 Y
15. 算法训练出现次数最多的整数
时间限制:1.0s 内存限制:512.0MB
问题描述
编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N
12
也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。
输入格式:第一行是一个整数N,N? £? 20;接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。
输出格式:输出只有一行,即出现次数最多的那个元素值。 输入输出样例 样例输入 5 100 150 150 200 250 样例输出 150
16. 算法训练 字串统计
时间限制:1.0s 内存限制:512.0MB
问题描述
给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。 输入格式
第一行一个数字L。 第二行是字符串S。
L大于0,且不超过S的长度。 输出格式
一行,题目要求的字符串。
输入样例1: 4
bbaabbaaaaa
输出样例1: bbaa
13
输入样例2: 2
bbaabbaaaaa
输出样例2: aa 数据规模和约定 n<=60
S中所有字符都是小写英文字母。 提示
枚举所有可能的子串,统计出现次数,找出符合条件的那个
17. 算法训练 矩阵乘法
时间限制:1.0s 内存限制:512.0MB
问题描述
输入两个矩阵,分别是m*s,s*n大小。输出两个矩阵相乘的结果。 输入格式
第一行,空格隔开的三个正整数m,s,n(均不超过200)。 接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j)。 接下来s行,每行n个空格隔开的整数,表示矩阵B(i,j)。 输出格式
m行,每行n个空格隔开的整数,输出相乘後的矩阵C(i,j)的值。 样例输入 2 3 2 1 0 -1 1 1 -3 0 3 1 2 3 1 样例输出 -3 2 -8 2
提示
矩阵C应该是m行n列,其中C(i,j)等于矩阵A第i行行向量与矩阵B第j列列向量的
14
内积。
例如样例中C(1,1)=(1,0,-1)*(0,1,3) = 1 * 0 +0*1+(-1)*3=-3
18. 算法训练 大小写转换
时间限制:1.0s 内存限制:512.0MB
问题描述
编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出。
输入格式:输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格。
输出格式:输出经过转换后的字符串。 输入输出样例 样例输入 AeDb 样例输出 aEdB
19. 算法训练 动态数组使用
时间限制:1.0s 内存限制:512.0MB
从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出。要求尽可能使用函数实现程序代码。平均值为小数的只保留其整数部分。 样例输入: 5 3 4 0 0 2 样例输出: 9 1 样例输入: 7 3 2 7 5 2 9 1 样例输出: 29 4 20. 算法训练删除数组零元素
时间限制:1.0s 内存限制:512.0MB
15