牛客網IO練習


牛客網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)

但是我其實搞這個的時候翻車了,因為沒有注意這個字符串每行都用,隔開,所以需要去掉最后的,。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM