一、实操题
1、编程实现:
给定一个正整数N,输出N除以3的商。
输入描述:
输入一个正整数N
输出描述:
输出N除以3的商
样例输入:
5
样例输出:
1
参考答案:br />```pythonN = int(input())result = N // 3print(result)```
2、编程实现:
STEM86商城按顺序摆放着“A”、“B”、“C”、“D”四种商品,其对应的编号分别为1、2、3、4。
给出1~4中任意一个编号,输出编号对应的商品。
输入描述:
输入1~4中任意一个编号
输出描述:
输出编号所对应的商品
样例输入:
2
样例输出:
B
参考答案:br />根据输入的编号,输出对应的商品。
3、提示信息:
一个正整数的平方的尾数一位或者几位数等于这个正整数,称为自守数
如:正整数5的平方为25,25的尾数一位是5;
正整数25的平方为625,625的尾数两位是25。
编程实现:
给定一个正整数,判断这个正整数是否为自守数,如果是输出大写字母“Y”,否者输出大写字母“N”。
注:1为自守数
输入描述:
输入一个正整数
输出描述:
判断这个正整数是否为自守数,如果是输出大写字母“Y”,否者输出大写字母“N”
样例输入:
5
样例输出:
Y
参考答案:br />```pythondef is_armstrong(n):n_str = str(n)n_square = n ** 2n_square_str = str(n_square)if n_str == n_square_str[-len(n_str):]:return "Y"else:return "N"n = int(input())print(is_armstrong(n))```
4、编程实现:
给出一组正整数数据和一个正整数(目标值),从这组正整数中找出两个数,使这两个数相加后的和,小于等于目标值并且离目标值最接近,然后将两个数的和输出。
如:正整数数据为【9,4,3,5】,目标值为10,其中正整数数据中4和3、4和5、3和5的和都小于目标值10,但离目标值最接近的两个数是4和5,其和为9。
输入描述:
第一行输入一组长度大于3个正整数的数据(正整数<10000),正整数之间以一个英文逗号隔开
第二行输入一个正整数 n(1<n<19997),表示目标值
输出描述:
输出一个整数。如果正整数数据中存在小于等于目标值并且离目标值最接近的两个数,则输出这两个数的和;如果正整数数据中不存在这样的两个数,即正整数数据中任意两个数的和都超过了目标值,则输出-1
样例输入:
9,4,3,5 10
样例输出:
9
参考答案:br />```pythondef find_closest_sum(nums, target):closest_sum = float('inf')closest_pair = Nonefor i in range(len(nums)):for j in range(i+1, len(nums)):num_sum = nums[i] + nums[j]if num_sum <= target and num_sum < closest_sum:closest_sum = num_sumclosest_pair = (nums[i], nums[j])if closest_pair is None:return -1else:return closest_sum# 输入nums_str = input().split(',')nums = [int(num) for num in nums_str]target = int(input())# 输出print(find_closest_sum(nums, target))```
5、编程实现:
小蓝桌子上摆放着一个容积为m的书包及n件不同的商品,且每件商品上都标有商品的体积和商品的价值。
小蓝要满足以下要求挑选商品装入书包中
要求1:挑选的商品总体积不超过书包的容积;
要求2:挑选的商品商品总价值最大。
请你帮助小蓝计算出能装入书包的商品的最大价值。
输入描述:
第一行输入两个正整数m和n,m表示书包的容积,n表示商品的数量。两个正整数之间一个英文逗号隔开
第二行输入n个正整数表示商品的体积,正整数之间一个英文逗号隔开
第三行输入n个正整数表示商品的价值,正整数之间一个英文逗号隔开(商品价值的输入顺序对应商品体积输入顺序)
输出描述:
输出装入书包的商品的最大价值
样例输入:
11,3 2,6,4 1,5,2
样例输出:
7
参考答案:```pythonm, n = map(int, input().split(','))volumes = list(map(int, input().split(',')))values = list(map(int, input().split(',')))dp = [[0] * (m + 1) for _ in range(n + 1)]for i in range(1, n + 1):for j in range(volumes[i - 1], m + 1):dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - volumes[i - 1]] + values[i - 1])print(dp[n][m])```
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!