Codeup 1017- 1023 python

1017: 期末成绩

[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB

题目描述
又到学期末,小明迎来了又一次的期末考试。虽然每学期都要考试,但是这次期末考试对小明来说意义重大。因为小明爱慕已久的女神说,如果小明这次考了全班前三名就做他女朋友。虽说小明没有十足的信心,但是女神的话不能不听啊。
考完试后,小明拿到了全班的成绩单,这张成绩单是按学号顺序排好的。小明很想知道班里到底有多少人分数比他高,现在就请你帮帮他,帮他数一下到底有多少人的分数比他高吧。
输入
输入数据的第一行是一个正整数T,表示测试数据的组数,接下来有T组测试数据。
每组数据包括两行。
第一行有两个正整数N,K(0<N<1000,0<K<=N),分别表示成绩单上总共的学生数目,和小明的学号。
第二行有N个整数Xi(0<=Xi<=100)分别表示各个学生的成绩,以学号递增顺序给出,第一个学生学号为1。
输出
对于每组数据,请在一行里输出班里一共有多少个学生成绩高于小明。
样例输入 Copy
1
3 2
81 72 63
样例输出 Copy
1

t = int(input())
for i in range(0, t):
	m = input().split()
	score = input().split()
	num = int(m[0])
	id = int(m[1])
	cnt = 0
	for i in range(0, num):
		if int(score[i]) > int(score[id - 1]):
			cnt += 1
	print(cnt)

1018: 奇怪的信

[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB

题目描述
有一天, 小明收到一张奇怪的信, 信上要小明计算出给定数各个位上数字为偶数的和。
例如:5548,结果为12,等于 4 + 8 。
小明很苦恼,想请你帮忙解决这个问题。
输入
输入数据有多组。每组占一行,只有一个整整数,保证数字在32位整型范围内。
输出
对于每组输入数据,输出一行,每两组数据之间有一个空行。
样例输入 Copy
415326
3262
样例输出 Copy
12

10

while True:
	n = list(str(input()))
	cnt = len(n)
	sum = 0
	for i in range(0, cnt):
		num = int(n[i])
		if num % 2 == 0:
			sum += num
	print(sum,'\n')

1019: 石头剪子布

[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB

题目描述
现在有两个人在玩石头剪子布游戏,请你判断最后谁赢了。
用R代表石头,S代表剪子,P代表布。
输入
输入的第一行是一个整数t(0<t<1000),表示测试样例的数目。
每组输入样例的第一行是一个整数n(0<n<100),表示游戏次数。
接下来n行,每行由两个字母组成,两个字母之间用一个空格分隔,这些字母只会是R,S或P。
第一个字母表示Player1的选择,第二个字母表示Player2的选择。
输出
对于每组输入样例,输出获胜方的名字(Player1或Player2),如果平均,则输出TIE。
样例输入 Copy
3
2
R P
S R
3
P P
R S
S R
1
P R
样例输出 Copy
Player 2
TIE
Player 1

def judge(num, player1, player2):
	if player1 == 'R':
		if player2 == 'S':
			num[0] += 1
		elif player2 == 'P':
			num[1] += 1
	elif player1 == 'S':
		if player2 == 'R':
			num[1] += 1
		elif player2 == 'P':
			num[0] += 1
	elif player1 == 'P':
		if player2 == 'S':
			num[1] += 1
		elif player2 == 'R':
			num[0] += 1
	return num

t = int(input())	#test time
for i in range(0, t):
	n = int(input())	#game time
	num = [0, 0]
	for j in range(0, n):
		game = input().split()
		p1 = game[0]
		p2 = game[1]
		judge(num, p1, p2)
	if num[0] > num[1]:
		print('Player 1')
	elif num[0] < num[1]:
		print('Player 2')
	else:
		print('TIE')

1021: 恶搞指数

[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB

题目描述
小明的朋友过生日,小明准备了一件礼物,不过小明想恶搞一下他的朋友,所以他准备了一堆盒子,其中有一个盒子里面装了礼物。盒子里面可以再放零个或者多个盒子。假设放礼物的盒子里不再放其他盒子。
用()表示一个盒子,B表示礼物,小明想让你帮他算出恶搞指数,即最少需要拆多少个盒子才能拿到礼物。
输入
输入包含多组测试数据。每组测试数据是一个长度不大于1000,只包含(,)和 B 三种字符的字符串,代表小明设计的礼物透视图。
题目保证每个透视图都是合法的。
输出
对于每组测试,请在一行里面输出恶搞指数。
样例输入 Copy
((((B)()))())
(B)
样例输出 Copy
4
1

while True:
	present = list(input())
	cnt = len(present)
	box = 0
	for i in range(0, cnt):
		if present[i] == 'B':
			break
		elif present[i] == '(':
			box += 1
		else:
			box -=1
	print(box)

1022: 挂盐水

[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB

题目描述
挂盐水的时候,如果滴起来有规律,先是滴一滴,停一下;然后滴二滴,停一下;再滴三滴,停一下…,现在有一个问题:这瓶盐水一共有VUL毫升,每一滴是D毫升,每一滴的速度是一秒(假设最后一滴不到D毫升,则花费的时间也算一秒),停一下的时间也是一秒这瓶水什么时候能挂完呢?
输入
输入数据包含多个测试实例,每个实例占一行,由VUL和D组成,其中 0<D<VUL<5000。
输出
对于每组测试数据,请输出挂完盐水需要的时间,每个实例的输出占一行。
样例输入 Copy
10 1
样例输出 Copy
13

while True:
	cnt = 0	#the number of drop
	time = 0
	v = 0	#the volume of all the drop
	num = 0

	lst = input().split()
	vol = int(lst[0])
	d =int(lst[1])
	
	while v < vol:
		cnt += 1
		num = 1
		for i in range(0,cnt):
			if v < vol:
				v += d
				num += 1
			else:
				break
		time += (num - 1)
	time += (cnt - 1)
	print(time) 

1023: 坑爹的黑店

[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB

题目描述
今天小明去了一个风景如画的地方散心,但是自己带的饮料喝完了,小明口渴难耐,见不远处有家小商店,于是跑去买饮料。

小明:“我要买饮料!”

店主:“我们这里有三种饮料,矿泉水1.5元一瓶,可乐2元一瓶,橙汁3.5元一瓶。”

小明:“好的,给我一瓶矿泉水。”

说完他掏出一张N元的大钞递给店主。

店主:“我忘了提醒你了,我们这里没有找客人钱的习惯的,多的钱我们都当小费收了的,嘿嘿。”

小明:“…”

小明环顾四周,就这一家商店,况且实在太渴了,就决定在这买了。不过小明想,与其把钱当小费送给他还不如自己多买一点饮料,反正早晚都要喝,但是要尽量少让他赚小费。

现在小明希望你能帮他计算一下,最少他要给店主多少小费。
输入
输入数据的第一行是一个整数T(1<=T<=100),代表测试数据的数量。然后是T行测试数据,每个测试数据只包含一个正整数N(1<=N<=10000),N代表小明手中钞票的面值,以分为单位。
注意:商店里只有题中描述的三种饮料。
输出
对于每组测试数据,请你输出小明最少要浪费多少钱给店主作为小费,以分为单位。
样例输入 Copy
2
900
250
样例输出 Copy
0
50

t = int(input())
for i in range(0, t):
	m = int(input())
	if m > 350:
		m %= 50
	elif m>=200:
		if m % 150 !=0:
			m %= 200
		else:
			m = 0
	elif m >= 150:
		m %= 150
	print(m)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值