注意:此页面偶尔会存在CSS冲突问题!

试题 1

输入一个整数a, 计算并输出2倍a的值。
输入格式
一行,一个整数
输出格式
一行,一个整数

提示:
你需要写一个程序,实现从标准输入(如键盘中)输入一个整数a,然后把2*a的结果输出到标准输出(如显示器)。在Python中,输入输出可以采用内置函数input和print来实现。但是需要注意的是,从input获得的输入,Python始终将其理解为一个字符串,因此,需要根据具体情况,决定是否要进行类型转换。譬如此题就需要转换为整数后再进行乘法操作。

注意:在输入输出时,尤其是输出时,不要写任何多余的辅助信息。
对于比如下面程序中的提示语"请输入一个整数:"就是多此一举,而另一个输出提示语"所求的结果为:"甚至还会导致输出不符合题目要求,无法通过黑盒测试而报错。
a = int(input(“请输入一个整数:”))

print(“所求的结果为:”, 2 * a)

因此,仅需写出代码即可:

a = int(input())

print(2 * a)

1
2
a=int(input())
print(2*a)

试题 2

输入两个整数A和B, 计算并输出A+B的结果。

输入格式

一行,两个以空格隔开的整数A和B

输出格式

一行,一个整数,表示A+B的结果

提示:

在Python中,我们使用input()从键盘读入的整行信息中包含了多个数据,而且这些数据后面需要单独处理(如本题中的A、B两个彼此独立的数),那就需要把整行信息进行”分割”。在本题中,在这一行中的两个数据之间原本是采用空格隔开的,因此,我们可以采用input().split()的方式进行分割。分割得到的两个部分又都是两个字符串,因此,又都需要转换成整数,才能进行后续的相加操作。可以采用map方法批量将两个字符串转换成整数。实现代码如下:

a, b = map(int, input().split())

print(a + b)

1
2
a,b = map(int,input().split())
print(a+b)

试题 3

1
2
3
4
5
6
7
8
9
10
11
word = input()
if word[-2::1] == "er" or word[-2::1] == "ly":
word1=word[0:-2:1]
elif word[-3::1] == "ing":
word1=word[0:-3:1]
else:
word1 = word
if len(word1) == 0:
print(word)
else:
print(word1)

试题 4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
n = eval(input())
pa= input().split()
a = 0
b = 0
c = 0
d = 0
for i in pa:
if eval(i) <=18:
a+=1
elif eval(i) <=35:
b+=1
elif eval(i) <=60:
c+=1
elif eval(i) > 60:
d+=1
a1 = a/n
b1 = b/n
c1 = c/n
d1 = d/n
print("{:.2%}".format(a1))
print("{:.2%}".format(b1))
print("{:.2%}".format(c1))
print("{:.2%}".format(d1))

试题 5

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

n = int(input())
patients = []
for _ in range(n):
name, temperature, cough = input().split()
temperature = float(temperature)
cough = int(cough)
patients.append((name, temperature, cough))


flu_patients = []
for patient in patients:
if patient[1] >= 37.5 and patient[2] == 1:
flu_patients.append(patient[0])


for patient in flu_patients:
print(patient)
print(len(flu_patients))

试题 6

1
2
3
4
5
6
7
8
9
10
11
high,up,down = map(int,input().split())
day = 1

for i in range(high):
if high - up > 0:
high = high - (up - down)
day += 1
else:
day +=0

print(day)

试题 7

1
2
3
4
5
6
7
8
9
10
11
12
13
n = eval(input())
g = 5
m = 3
x = 1/3
a = 0
for i in range(n):
for j in range(n):
for k in range(n):
if g*i+m*j+x*k == n and i + j+k ==n:
a+=1
print(i,j,k)
if a==0:
print("No Answer.")

试题 8

题目描述

给出一个正整数 $n$,然后对这个数字一直进行下面的操作:如果这个数字是奇数,那么将其乘 $3$ 再加 $1$,否则除以 $2$。经过若干次循环后,最终都会回到 $1$。经过验证很大的数字($7\times10^{11}$)都可以按照这样的方式比变成 $1$,所以被称为“冰雹猜想”。例如当 $n$ 是 $20$,变化的过程是 $20\to 10\to 5\to 16\to 8\to 4\to 2\to 1$。

根据给定的数字,验证这个猜想,并从最后的 $1$ 开始,倒序输出整个变化序列。

输入格式

输入一个正整数 $n$。

输出格式

输出若干个由空格隔开的正整数,表示从最后的 $1$ 开始倒序的变化数列。

样例 #1

样例输入 #1

1
20

样例输出 #1

1
1 2 4 8 16 5 10 20

提示

数据保证,$1 \le n\le 100$。

1
2
3
4
5
6
7
8
9
10
11
n = eval(input())
list1 = []
while n>1:
if n%2 == 0:
list1.append(str(int(n)))
n = n/2
else:
list1.append(str(int(n)))
n = n*3 +1
list1.append("1")
list1.reverse()

试题 9

题目描述

超市里有 $n(1\le n\le10^5)$ 个寄包柜。每个寄包柜格子数量不一,第 $i$ 个寄包柜有 $a_i(1\le a_i\le10^5)$ 个格子,不过我们并不知道各个 $a_i$ 的值。对于每个寄包柜,格子编号从 1 开始,一直到 $a_i$。现在有 $q(1 \le q\le10^5)$ 次操作:

  • 1 i j k:在第 $i$ 个柜子的第 $j$ 个格子存入物品 $k(0\le k\le 10^9)$。当 $k=0$ 时说明清空该格子。
  • 2 i j:查询第 $i$ 个柜子的第 $j$ 个格子中的物品是什么,保证查询的柜子有存过东西。

已知超市里共计不会超过 $10^7$ 个寄包格子,$a_i$ 是确定然而未知的,但是保证一定不小于该柜子存物品请求的格子编号的最大值。当然也有可能某些寄包柜中一个格子都没有。

输入格式

第一行 2 个整数 $n$ 和 $q$,寄包柜个数和询问次数。

接下来 $q$ 个整数,表示一次操作。

输出格式

对于查询操作时,输出答案,以换行隔开。

样例 #1

样例输入 #1

1
2
3
4
5
5 4
1 3 10000 118014
1 1 1 1
2 3 10000
2 1 1

样例输出 #1

1
2
118014
1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
n, q = map(int, input().split())


lockers = {}


for _ in range(q):
query = list(map(int, input().split()))
if query[0] == 1:
i, j, k = query[1:]
if i not in lockers:
lockers[i] = [0] * j
lockers[i][j-1] = k
elif query[0] == 2:
i, j = query[1:]
print(lockers[i][j-1])

试题 10

题目描述

为了丰富人民群众的生活、支持某些社会公益事业,北塔市设置了一项彩票。该彩票的规则是:

  1. 每张彩票上印有 $7$ 个各不相同的号码,且这些号码的取值范围为 $1\sim33$。
  2. 每次在兑奖前都会公布一个由七个各不相同的号码构成的中奖号码。
  3. 共设置 $7$ 个奖项,特等奖和一等奖至六等奖。

兑奖规则如下:

  • 特等奖:要求彩票上 $7$ 个号码都出现在中奖号码中。
  • 一等奖:要求彩票上有 $6$ 个号码出现在中奖号码中。
  • 二等奖:要求彩票上有 $5$ 个号码出现在中奖号码中。
  • 三等奖:要求彩票上有 $4$ 个号码出现在中奖号码中。
  • 四等奖:要求彩票上有 $3$ 个号码出现在中奖号码中。
  • 五等奖:要求彩票上有 $2$ 个号码出现在中奖号码中。
  • 六等奖:要求彩票上有 $1$ 个号码出现在中奖号码中。

注:兑奖时并不考虑彩票上的号码和中奖号码中的各个号码出现的位置。例如,中奖号码为 $23\ 31\ 1\ 14\ 19\ 17\ 18$,则彩票 $12\ 8\ 9\ 23\ 1\ 16\ 7$ 由于其中有两个号码($23$ 和 $1$)出现在中奖号码中,所以该彩票中了五等奖。

现已知中奖号码和小明买的若干张彩票的号码,请你写一个程序帮助小明判断他买的彩票的中奖情况。

输入格式

输入的第一行只有一个自然数 $n$,表示小明买的彩票张数;

第二行存放了 $7$ 个介于 $1$ 和 $33$ 之间的自然数,表示中奖号码;

在随后的 $n$ 行中每行都有 $7$ 个介于 $1$ 和 $33$ 之间的自然数,分别表示小明所买的 $n$ 张彩票。

输出格式

依次输出小明所买的彩票的中奖情况(中奖的张数),首先输出特等奖的中奖张数,然后依次输出一等奖至六等奖的中奖张数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
n = eval(input())
list=[]
prize = input().split()
o = 0
p = 0
q= 0
r= 0
s = 0
t = 0
u = 0
for i in range(n):
a = input().split()
b = 0
for j in a:
if j in prize:
b+=1
if b ==0:
b=-1
list.append(b)
for k in list:
if k == 7:
o +=1
elif k == 6:
p +=1
elif k == 5:
q +=1
elif k == 4:
r +=1
elif k == 3:
s +=1
elif k == 2:
t +=1
elif k == 1:
u +=1
print(o,p,q,r,s,t,u)