PAT01:A+B和C

1.A+B和C

题目

给定区间[-231, 231]内的3个整数A、B和C,请判断A+B是否大于C。

输入:输入第1行给出正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。

输出:对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。

输入例子:

1
2
3
4
5
4
1 2 3
2 3 4
2147483647 0 2147483646
0 -2147483648 -2147483647

输出例子:

1
2
3
4
Case #1: false
Case #2: true
Case #3: true
Case #4: false

题解

(1)我的解法

1
2
3
4
5
6
7
8
9
10
11
import sys

index = 0
for line in sys.stdin:
index +=1
a = line.split()
a = [int(i) for i in a]
if index == 1:
pass
else:
print(f'Case #{index-1}: {str(a[0]+a[1]>a[2]).lower()}')

(2)其他解法

1
2
3
4
n = int(input())
for i in range(n):
a,b,c = map(int,input().split())
print('Case #'+str((i+1))+': true' if a+b>c else 'Case #'+str((i+1))+': false')

知识点

  • sys.stdin

sys.stdin是Python中sys模块的一个属性,代表了标准输入流。在计算机程序中,标准输入流是一个用于接收输入数据的通道,通常情况下它是与键盘输入关联的,但也可以通过重定向或管道从文件或其他程序接收输入。

在Python程序中,使用sys.stdin可以读取来自命令行(或任何被重定向为标准输入源的数据)的输入。sys.stdin本质上是一个文件对象,因此可以对它使用文件操作的方法,如read(), readline()readlines()等,来读取输入的数据。

1、sys.stdin.read(): 读取并返回所有剩余的输入数据,直到遇到EOF(文件结束符)。

2、sys.stdin.readline(): 每次调用读取一行输入,包括行尾的换行符,如果已经到达EOF,则返回一个空字符串。

3、sys.stdin.readlines(): 读取所有剩余的输入行,并将它们作为字符串列表返回。

for line in sys.stdin:循环会逐行读取标准输入直到EOF。这种方式特别适合处理不确定数量的输入行。

在命令行环境中,通常可以通过Ctrl+D(在Unix/Linux/macOS系统中)或Ctrl+Z然后回车(在Windows系统中)来发送EOF信号。此外,sys.stdin也常被用于从文件中读取输入,通过命令行重定向操作,例如python script.py < inputfile.txt,这时inputfile.txt的内容会被作为标准输入传递给脚本。

  • 三元运算符

print("Case #"+str(i+1)+": true" if b+c>d else "Case #"+str(i+1)+": false"):

使用条件表达式(三元操作符)简化逻辑判断,而且字符串不能直接拼接整数,需要先对整数进行str()