2023年 NO C复 赛-P yth o n
1. 计 算年终奖
时间限制:1s
内 存限制:128M B
( 注:in p ut()括 号中不允许添加任何提示语)
某公司的员
员
M>20, 则员
请补全下
(1) 程序运
(2) 根据规则计算并输出员
M = int (input ())
m = int (input ())
if M <= 10 :
______
___________
m *= 5
____
______
print (m) # 输出员工年终奖金额
参考代码:
M = int (input ())
m = int (input ())
if M <= 10 :
m *= 3
elif M <= 20 :
m *= 5
else :
m *= 8
print (m) # 输出员工年终奖金额
2. 最
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
时间限制:1s
内 存限制:128M B
( 注:in p ut()括 号中不允许添加任何提示语)
欧
除余数的最
数就是最初两个数的最
例如:
48除 以18, 余数为12;
接 下来,18除 以12, 余数为6;
接 下来,12除 以6, 余数为0。
所 以,6就 是48和 18的 最
请补全下
(1) 程序运
(2) 使
a = int (input ())
b = int (input ())
def gcd (a, b ):
if a < b:
a, b = b, a
while ______:
r = _______
a = b
b = r
return _______
print (________) # 输出 a 和 b 的最大公约数
参考代码:
a = int (input ())
b = int (input ())
def gcd (a, b ):
if a < b:
a, b = b, a
while a % b != 0:
r = a % b
a = b
b = r
return b
print (gcd(a, b)) # 输出 a 和 b 的最大公约数
1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
a = int (input ())
b = int (input ())
def gcd (a, b ):
if a < b:
a, b = b, a
while b != 0:
r = a % b
a = b
b = r
return a
print (gcd(a, b)) # 输出 a 和 b 的最大公约数
3 .最 少纸币数
时间限制:1s
内 存限制:128M B
( 注:in p ut()括 号中不允许添加任何提示语)
和1元 的纸币,每种纸币张数
请编写
输
输
输出描述:
第
第
输
38
输 出样例:
7
0 0 3 1 3
参 考代码:
1
2
3
4
5
6
7
8
9
10
11
12
s = int (input ()) 1
ls = [ 0, 0, 0, 0, 0] 2
ls[ 0] = s // 100 3
ls[ 1] = s % 100 // 50 4
ls[ 2] = s % 50 // 10 5
ls[ 3] = s % 10 // 5 6
4. 单 词变复数
时间限制:1s
内 存限制:128M B
( 注:in p ut()括 号中不允许添加任何提示语)
英语单词在变成复数形式时,有以下
(1) 常规情况下结尾直接加s;
( 2) 以s、 sh 、 ch 、 x结 尾的单词,加es;
( 3) 以辅
(注:英
请编写
输
输
输出描述:
输出这个单词按以上规则变成的复数形式
输
te a ch er
输 出样例:
te a ch ers
参 考代码:
lsw = input ().split()
def plural (word ):
if word[- 1] in [ 's' , 'x' ] or word[- 2:] in [ 'sh' , 'ch' ]:
return word + 'es'
elif word[- 1] == 'y' and word[- 2] not in [ 'a' , 'e' , 'i' , 'o' , 'u' ]:
return word[:- 1] + 'ies'
else :
return word + 's'
for w in lsw:
print (plural(w), end= ' ' )
5 . 毕 业旅
时间限制:1s
ls[ 4] = s % 5 7
print (sum (ls)) 8
for i in ls: 9
print (i, end = ' ' ) 10
11
1
2
3
4
5
6
7
8
9
10
内存限制:128M B
( 注:in p ut()括 号中不允许添加任何提示语)
中转城市。 , , ...,
( 1≤ ≤ 100) 表示,不同的城市可能拥有相同的 喜爱度。现在,
(1≤ k≤ m ) 个编号连在
和最
请编写
输
第
数之间以空格隔开
第 ,正整数之间以空格隔开
输出描述:
输出
输
4 2
1 0 2 0 1 5 3 0
输 出样例:
45
参 考代码:
m, k = [ int (i) for i in input ().split()]
cities = [ int (i) for i in input ().split()]
maxn = 0
for i in range (k, m + 1):
sum_v = sum (cities[i - k: i])
maxn = max (maxn, sum_v)
print (maxn)
6 . 报 数游戏
时间限制:1s
内 存限制:128M B
( 注:in p ut()括 号中不允许添加任何提示语)
有n( 6≤ n≤ 100) 个
从第
四个
往后说,直到最终剩下五个
例如:有六个
1
2
3
4
5
6
7
接下来再从1号 继续,1号 说N, 2号 说O, 此 时2号 已经是第
请编写
的座位编号。
输
输
输出描述:
由
输
6
输出样例:
1 3 4 5 6
参 考代码:
n = int (input ())
idx = [i + 1 for i in range (n)]
hp = [ 2] * n
num = 0
p = - 1
while len (hp) > 5:
p += 1
p %= len (hp)
num += 1
if num % 3 == 2:
hp[p] -= 1
if hp[p] == 0:
hp.pop(p)
idx.pop(p)
p
2023年NOC复赛-Python小高组