蓝桥等考Python组别十八级02(大家来“找茬”)

蓝桥等考Python组别十八级002

第一部分:选择题

1、Python L18 (15分)

运行下面程序,输入30,输出的结果是(    )。

t = int(input())

if t < 30:

    print(15)

else:

    print(t // 15 * 2)

  1. 15
  2. 4
  3. 0
  4. 1

正确答案:B

2、Python L18 (15分)

运行下面程序,输入4,输出的结果是(    )。

n = int(input())

ans = 1

for i in range(2, n + 1):

    ans *= i

print(ans)

  1. 12
  2. 24
  3. 60
  4. 120

正确答案:B

3、Python L18 (20分)

运行下面程序,输入9,输出的结果是(    )。

n = int(input())

i = 0

while n > 1:

    n //= 2

    i += 1

print(i)

  1. 1
  2. 2
  3. 3
  4. 4

正确答案:C

第二部分:编程题

4、Python L18 大家来“找茬”(50分)

题目名称:大家来“找茬”

题目描述:

某网站开发了一款“找错误”的小游戏。游戏提供两幅十分相似的图片,其中有许多细节部分不同。玩家各自在自己的屏幕上观察这两幅图,每发现一处“错误”,点击屏幕错误位置后,一条包含用户名和错误编号的信息会被系统记录下来。

如果一处错误只有一个玩家发现,网站会奖励发现错误的玩家100积分;如果有两个以上的玩家都发现了同一处错误,发现错误的玩家平分这100积分的奖励(如果不能平分则向下取整)。

已知所有玩家共点击了n次屏幕,以及系统收集到的n条信息(用户名,错误编号),输入一个用户名,输出他(她)在这场游戏中获得了多少积分。

例如:

n=3,系统收集到的3条信息是:

A 4(用户A发现了编号为4的错误)

B 6(用户B发现了编号为6的错误)

A 6(用户A发现了编号为6的错误)

用户A共获得150积分。其中,编号为4的错误是A自己发现的,获得100积分;编号为6的错误A和B都发现了,各获得50积分。

输入:

第1行一个正整数n,为所有玩家点击屏幕的数量(1<=n<=100);

第2~第n+1行,每行一个字符串,由用户名和错误编号组成(用户名是一个大写字母,错误编号是一个整数,用户名的种类不超过26),之间用一个空格分隔;

第n+2行一个字符串,为指定的用户名。

题目数据保证不会出现重复信息,并且指定的用户名存在于n条信息中。

输出:

一个整数,为这名指定用户在这轮游戏中获得的积分数。

输入样例:

3

A 4

B 6

A 6

A

输出样例:

150

参考程序1:

n = int(input())

dic = {}

for i in range(n):

    a = input().split(' ')

    s = a[0]

    x = int(a[1])

    if x in dic:

        dic[x] += s

    else:

        dic[x] = s

p = input()

ans = 0

for v in dic.values():

    if p in v:

        ans += 100 // len(v)

print(ans)

参考程序2:

n = int(input())

s = []

for i in range(n):

    a = input().split(' ')

    s.append(a[0])

    s.append(a[1])

p = input()

ans = 0

for i in range(len(s)):

    if s[i] == p:

        ans += 100 // s.count(s[i + 1])

print(ans)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值