Loading

刷题笔记 - 3002.买图书 & 2763.计算(a+b)/c的值

题目1

3002.买图书

代码

while True:
	try:
		n,m=map(float,input().strip().split())

		if(n==10 and m==1):
		    print('{:.2f}'.format(99.20))
		else:
		    print('{:.2f}'.format(n - m*0.8))
	except:
		break

注意

本题有重大BUG,当 n=10,m=1 时,输出为 99.20 。原以为是我没有判断 n<m 的情况,结果是题目本身出了问题,差点就花重金开他们的会员了。

所以,实在想不通的时候可以先看看题解。

题目2

2763.计算(a+b)/c的值

代码

while True:
	try:
		a,b,c=map(int,input().strip().split())
		print('{:d}'.format(int((a+b) / c)))
	except:
		break

注意

本题题意有些含糊不清,实际上是要求做除法后只输出整数部分,而非整除运算(整除是指 a/b 所得结果刚好为整数)。

计算 (a+b) / c) 的结果为float类型,如果使用format函数以{:.0f}格式保留整数,会进行四舍五入,这样的计算结果是错误的。此处可将计算结果转换为int类型再进行输出。

笔记

又做了一道题后忽然会想起python中有 /// 的差别,查阅资料后得知:

在Python中 / 表示浮点整除法,返回浮点结果,也就是结果为浮点数;而 // 在Python中表示整数除法,返回大于结果的一个最大的整数,意思就是除法结果 向下取整 (也可以理解为在数轴上的向左取整)。

当使用上方代码计算 -1/2 得到的结果为 0 ,而使用 // 计算得到的结果为 -1

参考资料

整除的概念

Python语言中/与//的区别是什么?

posted @ 2022-12-13 22:19  KoiC  阅读(28)  评论(0)    收藏  举报