一、实操题
1、编程实现:
给定一个正整数N,求N 除以3的余数。
输入描述:
输入一个正整数N
输出描述:
输出N 除以3的余数
样例输入:
5
样例输出:
2
参考答案:br />```pythonn = int(input())remainder = n % 3print(remainder)```
2、编程实现:
给定一个字符串,判断字符串的长度是奇数还是偶数。
输入描述:
输入一个字符串
输出描述:
如果字符串长度为偶数输出数字“0”,否则输出数字“1”
样例输入:
Hello,python
样例输出:
0
参考答案:br />我们可以使用Python来实现这个功能。代码如下:```pythondef judge_string_length(input_str):length = len(input_str)if length % 2 == 0:return "0"else:return "1"# 测试代码input_str = "Hello,python"print(judge_string_length(input_str))```
3、编程实现:
给定N个正整数,判断N个正整数中,哪些正整数各个位数上的数字和为10,并输出这些正整数,若没有正整数满足条件,则输出0。
例如:输入4个正整数:19,20,21,28,其中19和28的个位和十位上的数字相加和为10,输出19,28。
输入描述:
输入N个正整数,正整数之间用一个英文逗号隔开
输出描述:
输出N个正整数中各个位数上的数字和为10的正整数,正整数之间用一个英文逗号隔开,若没有正整数满足条件,则输出0
样例输入:
19,20,21,28
样例输出:
19,28
参考答案:br />```pythondef check_sum(n):# 将数字转为字符串,方便处理每一位str_n = str(n)# 初始化数字之和为0sum = 0# 遍历字符串中的每一位for digit in str_n:sum += int(digit)# 判断数字之和是否为10if sum == 10:return nelse:return NoneN = input().split(',')result = []for num in N:num = int(num)result.append(check_sum(num))# 过滤掉None,只保留满足条件的数字result = [num for num in result if num is not None]# 判断是否有满足条件的数字if result:print(','.join(result))else:print('0')```
4、提示信息:
回文数:设n是一任意自然数。若将n的各个位数上的数字反向排列所得自然数n1与n相等,则称n为一回文数。
例如:若n=1234321,则称n为一回文数。
平方回文数:指一个数不仅是回文数,并且这个数还是某一个数的平方。
例如:121,是一个回文数,并且是11的平方数。
编程实现:
给定一个正整数M(100<M<2000),输出100到M之间(包含M)的平方回文数的个数。
例如:M为150,则在100到150之间的平方回数有1个,为121,输出1。
输入描述:
输入一个正整数M
输出描述:
输出100到M之间(包含M)的平方回文数的个数
样例输入:
150
样例输出:
1
参考答案:```pythondef is_palindrome(n):return str(n) == str(n)[::-1]def is_square(n, limit):root = int(n ** 0.5)return root * root == n and root <= limitdef count_square_palindromes(M):count = 0for i in range(100, M + 1):if is_palindrome(i) and is_square(i, M):count += 1return countM = int(input())print(count_square_palindromes(M))```
5、编程实现:
小明去游乐场玩飞镖扎气球的游戏,一共有n个气球,依次排成一行,每个气球上有一个数字,表示这个气球的分值。
游戏计分规则:
1、戳破1个气球,将获得其本身及左右相邻气球,共三个分值相乘的分数;
2、如果戳破的气球左边或右边没有气球,则获得其本身及相邻气球,共两个分值相乘的分数;如果被戳破的气球左边和右边都没有气球(是最后一个被戳破的气球),则这个气球本身的分值作为分数。
3、已经被戳破的气球不再计算。
飞镖数量不限,可以任意选择顺序戳破气球,根据计分规则,争取使得游戏最后得分最高。
例如:一共有3个气球,分值分别为2,4,6。
若想获得最高得分:
1)先戳破4,得分为2X4X6=48;
2)再戳破2,得分为2X6=12,累计得分60;
3)再戳破6,得分为6,累计得分66;
最后总得分为66,为最高得分。
输入描述:
输入n个正整数,表示气球的分值,且正整数之间以一个英文逗号隔开
输出描述:
输出正整数,表示戳破所有气球后获得的最高分数
样例输入:
2,4,6
样例输出:
66
参考答案:br />```pythondef max_score(scores):n = len(scores)dp = [[0] * n for _ in range(n)]for i in range(n):dp[i][i] = scores[i]for length in range(2, n + 1):for i in range(n - length + 1):j = i + length - 1dp[i][j] = max(dp[i][j], dp[i+1][j] * scores[i], dp[i][j-1] * scores[j])for k in range(i+1, j):dp[i][j] = max(dp[i][j], dp[i][k] * dp[k+1][j] * scores[k])return dp[0][n-1]scores = list(map(int, input().split(',')))print(max_score(scores))```
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!