2023年 NO C复 赛-P yth o n初 中组
1. 出 租
时间限制:1s
内 存限制:128m b
( 注:in p ut()括 号中不允许添加任何提示语)
根据乘坐出租
出租
请补全下
(1) 程序开始运
(2) 根据规则计算并输出乘坐出租
d = int (input ())
if __________:
cost = d * 2
__________
cost = __________
else :
cost = __________
print ('%.1f' % cost)
参 考代码:
d = int (input ())
if d <= 10 :
cost = d * 2
elif d <= 20 :
cost = 10 * 2 + (d - 10 ) * 1.5
else :
cost = 10 * 2 + 10 * 1.5 + (d - 20 )
print ('%.1f' % cost)
2 . 和 的结果数
单价
第 10公 2元 /公
第 1 1- 20公 1.5 元 /公
第 三阶梯 21公 1元 /公
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
时间限制:1s
内 存限制:128m b
( 注:in p ut()括 号中不允许添加任何提示语)
请补全下
(1) 输
(2) 从这n个 数中任选两个,计算并输出任 意两个数的和共有多少种不同结果。
例如:
输
(3+ 6) 、10( 4+ 6) ,因此,输出结果应为5。
ls = [ int (i) for i in input ().split()]
results = []
for i in range (_______):
for j in range (_______):
s = ls[i] + ls[j]
if s not in results:
_____________
print (len (results))
参 考代码:
ls = [ int (i) for i in input ().split()]
results = []
for i in range (0, len (ls) - 1):
for j in range (i + 1, len (ls)):
s = ls[i] + ls[j]
if s not in results:
results.append(s)
print (len (results))
3 . 因 数和个数
时间限制:1s
内 存限制:128m b
( 注:in p ut()括 号中不允许添加任何提示语)
把
和为1 + 2 + 3 + 6 = 1 2。
请 编写
出这些正整数。
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
输
输
输出描述:
第
如果存在,则第
输
12
输 出样例1:
2
6 1 1
样 例说明1:
因 数和为12的 正整数有2个 ,分别是6和 11
输
1 0
输 出样例2:
0
样 例说明2:
因 数和为10的 正整数不存在,所以仅输出0
参 考代码:
n = int (input ())
def add (n):
if n == 1:
return 1
s = 0
for i in range (1, n):
if i ** 2 > n:
break
if n % i == 0:
s += i + n // i
if i ** 2 == n:
return s
cnt = 0
ls = []
for i in range (1, n + 1):
if add(i) == n:
cnt += 1
ls.append(i)
print (cnt)
for i in ls:
print (i, end = ' ' )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
4. 单 词变复数
时间限制:1s
内 存限制:128m b
( 注:in p ut()括 号中不允许添加任何提示语)
英语单词在变成复数形式时,有以下
(1) 常规情况下结尾直接加s;
( 2) 以s、 sh 、 ch 、 x结 尾的单词,加es;
( 3) 以辅
(注:英
请编写
变成复数形式。
输
输
输出描述:
输出这组单词按以上规则变成的复数形式,单词之间以空格隔开
输
te a ch er b ox b utte r
输 出样例:
te a ch ers b oxe s b utte r
参 考代码:
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
内 存限制:128m b
( 注:in p ut()括 号中不允许添加任何提示语)
某啤酒品牌正在举办
换
1
2
3
4
5
6
7
8
9
10
请编写
酒,并将这个结果输出。
输
输
输出描述:
输出
输
10
输 出样例:
19
参 考代码:
n = int (input ())
total = n
bottles = n
caps = n
while bottles >= 3 or caps >= 5:
bottles_t = bottles // 3
caps_t = caps // 5
total += bottles_t + caps_t
bottles = bottles - bottles_t * 3 + bottles_t + caps_t
caps = caps - caps_t * 5 + bottles_t + caps_t
print (total)
6 . 反 转递增串
时间限制:1s
内 存限制:128m b
( 注:in p ut()括 号中不允许添加任何提示语)
编写
例如,正整数12387645包 含两个递增数字
83217654。
输
输
输 出描述:
输出
输
12387645
输 出样例1:
83217654
1
2
3
4
5
6
7
8
9
10
11
输
87654321
输 出样例2:
87654321
参 考代码:
n = input ()
result = ''
i = 0
while i < len (n):
j = i +
2023年NOC复赛-Python初中组真题