第一题 编程实现 输入一个字符串,如果该字符串以er、ly或者ing后缀结尾的,则删除该字符串后缀,并输出删除后的字符串,否者将原字符串输出。 输入描述 输入一个字符串 输出描述 输出删除后的字符串或原字符串 样例输入: driver 样例输出: driv
n = input()
if n[-2:] == 'er' or n[-2:] == 'ly':
print(n[:-2])
elif n[-3:] == 'ing':
print(n[:-3])
else:
print(n)
第二题 编程实现 用户输入一个正整致a作为如图半圆的直径,同时作为如圈等腰直角三角形的直角边长度,求下图的阴影部分面积,如图所示: 提示信息 三角形面积公式:S=(ah)/2(公式中a为三角形的底边,h为底边所对应的高) 圆形面积公式:S=лr^2(公式中r为园的半径,л=3.14) 已知条件: 1)半圆的直径和等腰直角三角形直角边长度相同; 2)三角形与半圆部分重叠; 3)三角形ABC为等腰直角三角形; 输入描述 一个正整数(作为半圆的直径) 输出描述 图形阴影面积(保留2位小数) 样例输入: 18 样例输出: 25.00
a = int(input())
s = a ** 2 / 4
print('%.2f' % s)
第三题 背景信息 因子:因子也叫因数,例如3*5=15,那么3和5是15的因子。同时15*1=15,那么1和15也是15的因子。 1,3,5,15这四个因子是15的所有因子。 完数:如果一个数等于不含它本身的其他因子之和,则称该数为“完数”。如6的因子有1,2,3,6,且1+2+3=6,因此6是完数。 编程实现 输入一个正整数N,输出小于N的所有完数及个数(个数前加“*”,例如:*2)。 输入描述 输入一个正整数N 输出描述 输出小于N的所有完数及个数 样例输入: 100 样例输出: 6 28 *2
n = int(input())
index = 0
for i in range(2, n):
sum1 = 0
for j in range(1, i // 2 + 1):
if i % j == 0:
sum1 += j
if sum1 == i:
print(i)
index += 1
print('*' + str(index))
def perfect(n):
list1 = [i for i in range(1, n // 2 + 1) if n % i == 0]
return sum(list1) == n
n = int(input())
re = [i for i in range(2, n) if perfect(i)]
print(*re, sep='\n')
print(f'*{len(re)}')
第四题 背景信息 在生活中,为保证信息安全,我们会把重要的信息进行加密后再发送给对方,对方需要通过相同的策略对信息进行解密,才能了解到传递的信息,我们一般把加密前的信息称为原文,将加密后的信息称为密文。 有这样一种加密的策略:第一次加密策略是将明文中字母a加密为01,b加密为02,c加密为03,以此类推,x加密为24,y加密为25,z加密为26,空格不加密;然后在第一次加密的基础上进行二次加密,第二次加密策略是将数字0加密为27,数字1加密为28,以此类推,数字8加密为35,数字9加密为36,空格则加密为00。 编程实现 请输入一段明文,按照上述加密策略,输出对应密文。 输入描述 输入一段明文(只包含小写字母和空格) 输出描述 按照上述加密策略,输出对应密文 样例输入: ab c 样例输出: 27282729002730
d = {}
for i in range(1, 27):
if i < 10:
d[chr(i + 96)] = '0' + str(i)
else:
d[chr(i + 96)] = str(i)
print(d)
t = input()
s1 = ''
for i in t:
if i == ' ':
s1 += ' '
else:
s1 += d[i]
s2 = ''
for i in s1:
if i == ' ':
s2 += '00'
else:
s2 += str(int(i) + 27)
print(s2)
from re import sub
t=input()
t=sub('[a-z]',lambda i: str(ord(i.group(0))-96).zfill(2),t)
t=sub('[0-9]',lambda i: str(int(i.group(0))+27),t).replace(' ','00')
print(t)
?第五题 下图给出了公历2020年1月25日~2021年1月20日之间,二十四个节气的名称,公历具体日期及汉语拼音的缩写。 输入描述 输入一个日期,介于公历2020年1月25日~2021年1月20日之间。例如:2020年5月2日写为“2020*05*02”。 输出描述 如果当天恰好是一个节气,输出这个节气的汉语拼音缩写,如当天不是节气则输出下一个节气的汉语拼音缩写。 样例输入1: 2020*06*21 样例输出1: XZ 样例输出1说明:6月21日是夏至,汉语拼音缩写是"XZ" 样例输入2: 2020*07*04 样例输出2: XS 样例输出2说明:7月4日之后的节气是小暑,汉语拼音缩写是"XS"
names=['XH','DH','LC','YS','JZ','CF','QM','GY','LX','XM','MZ','XZ','XS','DS','LQ','CS','BL','QF','HL','SJ','LD','XX','DX','DZ']
dates=[105,120,204,219,305,320,404,419,505,520,605,621,706,722,807,822,907,922,1008,1023,1107,1122,1207,1221]
day=int(input().replace('*','')[-4:])
dates_=[i for i in dates if i<day]
if len(dates_)==24:
print('XH')
else :
print(names[len(dates_)])
第六题 编程实现 现有一个容器,其容量为v(0<v<1001,正整数),同时有n个物品(0<n<=30),每个物品体积大小不同(正整数)。 在n个物品中,任取若干个装入容器内,使容器的剩余空间为最小。 输入描述 输入容器大小V(0<V<1001,正整数)输入物品数量n(0<n<=30)输入n个物品的不同大小(正整数) 输出描述 剩余最小空间值 样例输入: 100 4 50 20 45 19 说明:“100”输入的是容器大小V;“4”输入的是物品数量n;“50"“20"“45,“19”输入的是4个物品体积。 样例输出: 5 说明:“5”是容器大小减掉4个物体不同组合后与容器大小最为接近的一组值。(物品组合个数不限制,只找最接近容器大小的值)
# 递归法
def fill(lst,room):
if not lst: #物品取完
return room
if not room: #没有空间
return 0
result = fill(lst[1:],room) #空间不够放
if room>=lst[0]: #空间够放
take=fill(lst[1:],room-lst[0])
result=min(take,result)
return result
v=int(input())
n=int(input())
lst=[]
for i in range(n):
lst.append(int(input()))
print(fill(lst,v))
# 暴力破解
from itertools import combinations
v=int(input())
n=int(input())
lst=[]
for i in range(n):
lst.append(int(input()))
lstt=[]
for i in range(1,n+1):
lstt.extend(list(combinations(lst,i)))
lsttt=[v-sum(i) for i in lstt if v-sum(i)>=0]
print(min(lsttt))
|