目录
牛客网IO练习
1. 计算a+b
计算a+b
输入描述:
输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。
输出描述:
输出a+b的结果
import sys
for line in sys.stdin:
a = line.split()
print(int(a[0]) + int(a[1]))
其中sys.stdin和stdout是标准输入输出函数,
import fileinput
for line in fileinput.input():
a = line.split()
print(int(a[0]) + int(a[1]))
或者也可以用fileinput,其中也有input函数,可以用来进行输入流。
2. 计算a+b
计算a+b
输入描述:
输入第一行包括一个数据组数t(1 <= t <= 100)
接下来每行包括两个正整数a,b(1 <= a, b <= 10^9)
输出描述:
输出a+b的结果
python自带input,直接用python自带的input。
num = input()
num = int(num)
for i in range(num):
a = input()
Input_Num = a.split()
print(int(Input_Num[0]) + int(Input_Num[1]))
或者混合起来,第一个用input,其他的都用输入流来解决。
import fileinput
num = input()
num = int(num)
for line in fileinput.input():
a = line.split()
print(int(a[0])+int(a[1]))
3. 计算a+b
计算a+b
输入描述:
输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0 0则结束输入
输出描述:
输出a+b的结果
这个就是还是用流输入,只不过需要加一个终止的break。
from fileinput import input
for line in input():
a = line.split()
if int(a[0])!=0 and int(a[1])!=0:
print(int(a[0])+int(a[1]))
else:
break
4. 计算a+b
计算一系列数的和
输入描述:
输入数据包括多组。
每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100), n为0的时候结束输入。
接下来n个正整数,即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果
还是稳如老狗的流输入,最后加一点点数学小技巧。
from fileinput import input
for line in input():
a = line.split()
for i in range(len(a)):
a[i] = int(a[i])
if a[0] != 0:
print(sum(a)-a[0])
else:
break
5. 计算a+b
输入描述:
输入的第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。
接下来t行, 每行一组数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果
定睛一看,这是上面某两道题的组合。我感觉我刷这个刷的越来越快。。。
import fileinput
num = int(input())
for i in fileinput.input():
n = i.split()
n = list(map(lambda x:int(x),n))
print(sum(n)-n[0])
我感觉有一个事情很困扰我,就是一开始用num控制循环,但是始终报错,但是用流控制循环,就莫名通过了,这事情太迷了。
6. 计算a+b
计算一系列数的和
输入描述:
输入数据有多组, 每行表示一组输入数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果
这个,就是比刚刚那个还简单的一些操作,我不评价了。
from fileinput import input
for line in input():
a = line.split()
a = list(map(lambda x:int(x),a))
print(sum(a)-a[0])
7. 计算a+b
计算一系列数的和
输入描述:
输入数据有多组, 每行表示一组输入数据。每行不定有n个整数,空格隔开。(1 <= n <= 100)。
输出描述:
每组数据输出求和的结果
我感觉这题出的越来越懒了。我佛了。
from fileinput import input
for line in input():
a = line.split()
a = list(map(lambda x:int(x),a))
print(sum(a))
8. 字符串排序
对输入的字符串进行排序后输出
输入描述:
输入有两行,第一行n第二行是n个空格隔开的字符串
输出描述:
输出一行排序后的字符串,空格隔开,无结尾空格
一开始没有仔细看题,后来看了一些,发现排序函数有点问题。
num = int(input())
line = input()
a = line.split()
a = sorted(a)
s = ''
for i in range(num - 1):
s += a[i] +' '
s += a[-1]
print(s)
9. 字符串排序
对输入的字符串进行排序后输出
输入描述:
多个测试用例,每个测试用例一行。每行通过空格隔开,有n个字符,n<100
输出描述:
对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开
就是把上面第二行的input换成流。
from fileinput import input
for line in input():
a = line.split()
a = sorted(a)
s = ''
for i in range(len(a)-1):
s+=a[i]+' '
s += a[-1]
print(s)
无比寒碜啊。
10. 字符串排序
对输入的字符串进行排序后输出
输入描述:
多个测试用例,每个测试用例一行。
每行通过,隔开,有n个字符,n<100
输出描述:
对于每组用例输出一行排序后的字符串,用','隔开,无结尾空格
就是把上面的‘ ’换乘',。
from fileinput import input
for line in input():
a = sorted(line.strip().split(','))
s = ''
for i in range(len(a)-1):
s+=a[i]+','
s += a[-1]
print(s)
但是我其实搞这个的时候翻车了,因为没有注意这个字符串每行都用,隔开,所以需要去掉最后的,。