第零級 (測試用) 1000~1018 題解公開
讀取測試資料 可以用 ipput() 指令
====================================
# 1000 [語言] 第一支程式
-------------------------------------------------------------
(問題敘述 )
只要能夠成功編譯,就能獲得滿分,超好賺的
(不必做任何計算, 也不能做任何輸入、輸出!)
-------------------------------------------------------------
(題 解)
PY2 / PY3:
(什麼都不用) 直接上傳
-------------------------------------------------------------
# 1003 [語言] 字串之輸入與輸出操作
-------------------------------------------------------------
(問題敘述 )
來試試字串的輸入以及輸出吧!
輸入共有一列,包含一個由英文字母大小寫與數字組成的字串 S,字串的長度至少為1。
測試資料 1,字串的長度不超過10。
測試資料 2,字串的長度不超過100。
測試資料 3,字串的長度不超過10000。
測試資料 4,字串的長度不超過1000000。
-------------------------------------------------------------
(題 解)
ipline=input()
print(ipline)
print(ipline)
-------------------------------------------------------------
# 1004 [語言] 簡單的數值運算
----------------------------------------
(問題敘述 )
來試試看用程式語言當計算機好了
請依照輸出格式輸出計算後所得的答案
設 f(x) = x^3 + 3x^2 + 7x + 4
(上式中的 a^b 表示 a 的 b 次方之意,
優先順序較加法與係數運算高,
也即 f(x) = (x^3) + 3(x^2) + 7(x) + 4)
-----------------------------------------------------------
(題 解)
# x=13
x=int(input())
y = (x**3) + 3*(x**2) + 7*x + 4
print(y)
-----------------------------------------------------------
# 1005 [語言] 複雜的數值運算
----------------------------------------
(問題敘述 )
來試試看用程式語言當計算機好了
請依照輸出格式輸出計算後所得的答案
設 f(x,y,z) = - (x^3) + y*(x^2) - z*x + 4
(上式中的 a^b 表示之意,與題目1004相同)
-----------------------------------------------------------
(題 解)
ipline =input()
# ipline='3 7 5'
ipline=' '+ipline+' '
numlist=[]
strlen=len(ipline)
c=0 ;k=0 ; l=0; r=0
for i in range(strlen):
if ipline[i]==' ':
l=k; r=i
k=r
c=c+1
if c>1 :
numlist.append(int(ipline[l+1:r]))
x=numlist[0]
y=numlist[1]
z=numlist[2]
# print(x,y,z)
f= - (x**3) + y*(x**2) - z*x + 4
print(f)
-----------------------------------------------------------
# 1006 [語言]
----------------------------------------
(問題敘述 )
設 f(x) 由以下程序定義:
(a) 若 x > 0, 則 f(x) = x^3 + 3x^2 + 7x + 4
(b) 若 x <= 0, 則 f(x) = 2x^3 - x^2 - 2
輸入說明
輸入共有一列
其中包含整數 X。
(|X| <= 1000)
輸出說明
請輸出 f(X)
-----------------------------------------------------------
(題 解)
x=int(input())
# x=5
if x>0 :
f= x**3 + 3*x**2 + 7*x + 4
if x<= 0:
f= 2*(x**3 )- x**2 - 2
print(f)
-----------------------------------------------------------
# 1007 [語言]
----------------------------------------
(問題敘述 )
設 f(x) 由以下程序定義:
(a) 若 x > 0, 則 f(x) = x^3 - 311x^2 - 72x - 4
(b) 若 x <= 0, 則 f(x) = 2x^3 + 78x^2 - 2
輸入說明
輸入共有一列
其中包含整數 X。
(|X| <= 1000)
輸出說明
請輸出兩列。
第一列為 |f(X)| 除以 10007 所得之商數。
第二列為 |f(X)| 除以 10007 所得之餘數。
(|f(X)| 為 f(X) 之絕對值)
-----------------------------------------------------------
(題 解)x=int(input())
# x=5
if x>0 :
f= x**3 - 311*(x**2) - 72*x-4
if x<= 0:
f= 2*(x**3 ) + 78 *(x**2) - 2
print( abs(f) // 10007 )
print( abs(f) % 10007)
-----------------------------------------------------------
# 1008 [語言]
----------------------------------------
(問題敘述 )
設 f(x) = 2x^5 + 4x^3 + 7。
輸入說明
輸入共有兩列
第一列為正整數X。 (X <= 1000000000)
第二列為正整數Y。 (Y <= 1000000000)
輸出說明
請輸出 f(X) 除以 Y 所得之餘數。
-----------------------------------------------------------
(題 解)
x=int(input())
y=int(input())
# x=17
# y=1234
f= 2*(x**5) + 4 * (x**3 ) +7
print(f % y)
-----------------------------------------------------------
# 1009 [語言]
----------------------------------------
(問題敘述 )
檢查第一個字母是否為大寫?
輸入說明
輸入共有一列,包含一個由大小寫英文字母組成的連續字串,長度介於1至10之間。
輸出說明
如果第一個字母為大寫,請輸出一列 "YES" (不含引號),否則請輸出一列 "No" (不含引號)。
-----------------------------------------------------------
(題 解)
ipline=input()
# ipline='Wen'
if ord(ipline[0]) > 64 and ord(ipline[0]) < 91 :
print('YES')
else:
print('No')
-----------------------------------------------------------
(另 解)
ipline=input()
# ipline='Wen'
if(ipline[0].isupper() == True ):
print("YES")
else:
print("No")
-----------------------------------------------------------
# 1010 [語言] # ipline='Wen'
if(ipline[0].isupper() == True ):
print("YES")
else:
print("No")
-----------------------------------------------------------
----------------------------------------
(問題敘述 )
找出這些數中的最小值。
輸入說明
輸入共有兩列
第一列為一個正整數 N。(N <= 1000000)
第二列共有 N 個正整數,相鄰正整數之間以一個空白分隔,數值不超過 1000000000。
輸出說明
請輸出第二列輸入中的 N 個正整數之最小值
-----------------------------------------------------------
(題 解)
# 1010 : 找出這些數中的最小值
n=int(input())
ipline=input()
# n=5
# ipline='6 3 4 17 9'
ipline=' '+ipline+' '
numlist=[]
strlen=len(ipline)
c=0 ;k=0 ; l=0; r=0
for i in range(strlen):
if ipline[i]==' ':
l=k; r=i
k=r
c=c+1
if c>1 :
numlist.append(int(ipline[l+1:r]))
print(min(numlist))
-----------------------------------------------------------
# 1011 [語言]
----------------------------------------
(問題敘述 )
給你一些數,
請你依照相反的順序輸出這些正整數。
輸入說明
輸入共有兩列
第一列為一個正整數 N。(N <= 1000000)
第二列共有 N 個正整數,相鄰正整數之間以一個空白分隔,數值不超過 1000000000。
-----------------------------------------------------------
(題 解)
# 陣列反轉 (飆程式網 #1011) -1
n=int(input())
ipline=input()
# n=5
# ipline="2 3 12 4 5"
a = ipline.split(' ')
print(' '.join(reversed(a)))
-----------------------------------------------------------
# 1012 [語言]
----------------------------------------
(問題敘述 )
輸入的第一列有一個正整數T。(T <= 1000000)
接著共有T列測試資料,每列為一個由字元 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 所組成的連續字串,長度至少一位,且不超過 1000000 位。
這T列字串的長度總和不超過 50000000 個字元。
輸出說明
請輸出T列,對於每一列測試資料,先輸出該列字串,再輸出 10 個整數,以一個空格分隔,依序表示該列輸入中共有幾個字元 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'。
-----------------------------------------------------------
(題 解)
# (解法-1)
# 飆程式網 #1012
n=int(input())
for i in range(n):
ipline=input()
print(ipline,end=' ')
for j in range(10):
c=ipline.count(str(j))
print(c,end=' ')
print()
-----------------------------------------------------------
# 1013 [語言]
----------------------------------------
(問題敘述 )
請輸出反轉後的字串。
-----------------------------------------------------------
(題 解)
# 1014 [語言] ----------------------------------------
(問題敘述 )
請輸出反轉後的字串。
-----------------------------------------------------------
(題 解)
ipline=input()
# ipline="FHHSa"
for i in range(len(ipline)-1,-1,-1):
print(ipline[i:i+1],end='')
-----------------------------------------------------------# ipline="FHHSa"
for i in range(len(ipline)-1,-1,-1):
print(ipline[i:i+1],end='')
----------------------------------------
(問題敘述 )
數一下字串中有幾個小寫和大寫英文字母嗎?
輸入說明
輸入只有一列,為一由字元 'a'~'z','A'~'Z' 所組成的連續字串,長度至少一位,且不超過 1000000 位。
輸出說明
請輸出兩個整數,表示字串中的小寫數量和大寫數量,並以空白隔開。
範例輸入
Fhhs
範例輸出
3 1
-----------------------------------------------------------
(題 解 -1 )
ipline=input()
# ipline="FHHs"
cl=0; cc=0
for str in ipline:
# print(strs)
if str.isupper():
cc=cc+1
elif str.islower():
cl=cl+1
print(cl,cc)
-----------------------------------------------------------# ipline="FHHs"
cl=0; cc=0
for str in ipline:
# print(strs)
if str.isupper():
cc=cc+1
elif str.islower():
cl=cl+1
print(cl,cc)
(題 解 -2 )
ipline=input()
# ipline="FHHs"
cc=0 ; cl =0
for i in range(len(ipline)):
if ipline[i:i+1] >='A' and ipline[i:i+1] <='Z' :
cc=cc+1
elif ipline[i:i+1] >='a' and ipline[i:i+1] <='z' :
cl=cl+1
print(cl,cc)
----------------------------------------
# 1015[語言]
----------------------------------------
(問題敘述 )
將小寫字母換成大寫字母,大寫字母換成小寫字母嗎?
輸入說明
輸入只有一列,為一由字元 'a'~'z','A'~'Z' 所組成的連續字串,長度至少一位,且不超過 1000000 位。
輸出說明
請輸出將大小寫字母互換之後的字串。
-----------------------------------------------------------
(題 解)
ipline=input()
# ipline='AbCdEfzZ'
str=''
for i in range(len(ipline)):
# print(ipline[i:i+1], ord(ipline[i:i+1]))
if ord(ipline[i:i+1]) >=65 and ord(ipline[i:i+1]) <=90:
str=str+chr(ord(ipline[i:i+1])+32)
elif ord(ipline[i:i+1]) >=97 and ord(ipline[i:i+1]) <=123:
str=str+chr(ord(ipline[i:i+1])-32)
print(str)
# 1016 [語言]
----------------------------------------
(問題敘述 )
找出這些數裡面出現最多次的數值
輸入說明
輸入共有兩列
第一列為一個正整數 N (1 <= N <= 100000)
第二列共有 N 個正整數,相鄰正整數之間以一個空白分隔,數值介於0到9之間。
輸出說明
請輸出第二列輸入中的 N 個正整數中,出現最多次的數值。若有不只一個數值出現最多次,請由小到大輸出這些數值,並以空白隔開。
-----------------------------------------------------------
(題 解)
# 飆程式網 #1016
n=input()
ipline=input()
# n=13
# ipline="1 9 3 5 1 4 0 9 8 1 4 2 4"
c=[]
for i in range(10):
c.append(0)
# print(c)
for i in range(0,len(ipline),2):
n=int(ipline[i]) ; # print(n, end='')
c[n]=c[n]+1
# print(c); print(max(c))
for i in range(10):
if c[i] == max(c) :
print(i,end=' ')
----------------------------------------
(問題敘述 )
給你 N 個字串,請依照輸入的順序由後往前輸出這些字串。
輸入說明
輸入共有 N+1 列
第一列為一個正整數 N ,表示接下來有 N 個字串。 ( 1 <= N <= 1000 )
第二列到第 N+1 列,每一列為一由字元 'a'~'z','A'~'Z' 所組成的連續字串,長度至少一位,且不超過 1000 位。
輸出說明
請依照輸入的順序,由後往前輸出這些字串。兩字串間請以換行隔開。
-----------------------------------------------------------
(題 解)
# 飆程式網 #1018
n=int(input())
ipline=[]
for i in range(n):
ipline.append(input())
for i in range(n-1,-1,-1):
print(ipline[i])
-----------------------------------------------------------n=input()
ipline=input()
# n=13
# ipline="1 9 3 5 1 4 0 9 8 1 4 2 4"
c=[]
for i in range(10):
c.append(0)
# print(c)
for i in range(0,len(ipline),2):
n=int(ipline[i]) ; # print(n, end='')
c[n]=c[n]+1
# print(c); print(max(c))
for i in range(10):
if c[i] == max(c) :
print(i,end=' ')
# 1017 [語言]
----------------------------------------
(問題敘述 )
給你兩個長度分別為 N,M 的陣列 A,B,請輸出兩陣列中元素相乘的結果,詳見輸出說明。
輸入說明
輸入共有兩列
第一列第一個整數為 N ,表示陣列 A 的長度,接著共有 N 個整數,依序表示 A 中的元素。
第二列第一個整數為 M ,表示陣列 B 的長度,接著共有 M 個整數,依序表示 B 中的元素。
保證 1 <= N,M <= 1000,且陣列中的元素都介於 0 到 999 之間。
輸出說明
請輸出 M 列,每列共 N 個整數,同一列的整數請以空白隔開。
其中,第 i 列的第 j 個整數表示 B 中第 i 個元素乘以 A 中第 j 個元素的值。
範例輸入
4 1 2 3 4
3 1 10 100
範例輸出
1 2 3 4
10 20 30 40
100 200 300 400
-----------------------------------------------------------
(題 解)
# 飆程式網 #1017
ipline01=input()
ipline02=input()
# ipline01='4 1 2 3 4'
# ipline02='3 1 10 100'
c=[]
for i in range(10):
c.append(0)
list01=list(map(int,ipline01.split())); list02=list(map(int,ipline02.split()))
for i in range(1,list02[0]+1):
for j in range(1,list01[0]+1):
print(list01[j]*list02[i],end=' ')
print()
---------------------------------------------------------------------------------------------------
(問題敘述 )
給你兩個長度分別為 N,M 的陣列 A,B,請輸出兩陣列中元素相乘的結果,詳見輸出說明。
輸入說明
輸入共有兩列
第一列第一個整數為 N ,表示陣列 A 的長度,接著共有 N 個整數,依序表示 A 中的元素。
第二列第一個整數為 M ,表示陣列 B 的長度,接著共有 M 個整數,依序表示 B 中的元素。
保證 1 <= N,M <= 1000,且陣列中的元素都介於 0 到 999 之間。
輸出說明
請輸出 M 列,每列共 N 個整數,同一列的整數請以空白隔開。
其中,第 i 列的第 j 個整數表示 B 中第 i 個元素乘以 A 中第 j 個元素的值。
範例輸入
4 1 2 3 4
3 1 10 100
範例輸出
1 2 3 4
10 20 30 40
100 200 300 400
-----------------------------------------------------------
(題 解)
# 飆程式網 #1017
ipline01=input()
ipline02=input()
# ipline01='4 1 2 3 4'
# ipline02='3 1 10 100'
c=[]
for i in range(10):
c.append(0)
list01=list(map(int,ipline01.split())); list02=list(map(int,ipline02.split()))
for i in range(1,list02[0]+1):
for j in range(1,list01[0]+1):
print(list01[j]*list02[i],end=' ')
print()
# 1018 [語言]
----------------------------------------(問題敘述 )
給你 N 個字串,請依照輸入的順序由後往前輸出這些字串。
輸入說明
輸入共有 N+1 列
第一列為一個正整數 N ,表示接下來有 N 個字串。 ( 1 <= N <= 1000 )
第二列到第 N+1 列,每一列為一由字元 'a'~'z','A'~'Z' 所組成的連續字串,長度至少一位,且不超過 1000 位。
輸出說明
請依照輸入的順序,由後往前輸出這些字串。兩字串間請以換行隔開。
-----------------------------------------------------------
(題 解)
# 飆程式網 #1018
n=int(input())
ipline=[]
for i in range(n):
ipline.append(input())
for i in range(n-1,-1,-1):
print(ipline[i])
# 100 [語言]
----------------------------------------(問題敘述 )
-----------------------------------------------------------
(題 解)
***************************************
用 sys 讀測試資料請用
import sys
sInput=sys.stdin.readline().strip()
*************** 說明 *******************
Python從標準輸入stdin讀取數據
Python有幾種方法來讀取標準輸入的數據。
(1). sys.stdin.readline() 僅僅接受一行的全部輸入
在末尾加上.strip()或.strip(“\n”)去掉末尾的換行符, 如:
line=sys.stdin.readline().strip() #末尾加.strip() ,去掉了換行符
(2). sys.stdin.read()可以接受多行的標準輸入,包括末尾的'\n'
------------------------------------------------------------
sys.stdin提供了read()和readline()函數,如果想按一行行來讀取,可以考慮使用它:
1、使用 sys.stdin
import sys
line = sys.stdin.readline()
while line:
print line,
line = sys.stdin.readline()
注意:如果沒有數據,io會被堵塞,所以可以對標準輸入做數據檢查(Linux):
import sys
import select
if select.select([sys.stdin], [], [], 0.0)[0]:
help_file_fragment = sys.stdin.read()
else:
print("No data", file=sys.stderr)
sys.exit(2)
2、 使用 sys.stdin.readline()
如果在平時使用sys.stdin.readline( )獲取輸入的話,不要忘了去掉末尾的換行符,
可以用strip( )函數去掉(sys.stdin.readline( ).strip('\n')),這樣處理一下就行了。
3、 1003 指令 map(int,i.split()) 語法說明
# 下面一行將輸入的字串 line 以" "(空白鍵)為分隔切成兩個字串,
再將這兩個字串作型態轉換,轉成int再分別儲存至a,b中
a,b=map(int,line.split())
==================================
1000 [語言] 第一支程式
---------------------------------
(問題敘述 )
只要能夠成功編譯,就能獲得滿分,超好賺的
(不必做任何計算, 也不能做任何輸入、輸出!)
-----------------------------------
PY2 / PY3:
(什麼都不用) 直接上傳
==================================
1001 [語言] 輸出操作
-------------------------
(問題敘述 )
你的程式能輸出上古時代的範例「 Hello World 」嗎?
就從這題開始吧~~
----------------------------------------
(題 解)
print('Hello World')
print('Hello FHHS')
==================================
1003 [語言] 字串之輸入與輸出操作
-----------------------------------
(問題敘述 )
來試試字串的輸入以及輸出吧!
輸入共有一列,包含一個由英文字母大小寫與數字組成的字串 S,字串的長度至少為1。
測試資料 1,字串的長度不超過10。
測試資料 2,字串的長度不超過100。
測試資料 3,字串的長度不超過10000。
測試資料 4,字串的長度不超過1000000。
--------------------------------------
(題 解)
import sys
sInput=sys.stdin.readline().strip()
while(sInput!=""):
print(sInput)
print(sInput)
sInput=sys.stdin.readline().strip()
1004 [語言] 簡單的數值運算
----------------------------------------
(問題敘述 )
來試試看用程式語言當計算機好了
請依照輸出格式輸出計算後所得的答案
設 f(x) = x^3 + 3x^2 + 7x + 4
(上式中的 a^b 表示 a 的 b 次方之意,
優先順序較加法與係數運算高,
也即 f(x) = (x^3) + 3(x^2) + 7(x) + 4)
真的這麼簡單嗎?相信真的很簡單XD
不過如果答案錯誤別緊張,會有厲害的老師來幫你!
輸入說明
輸入共有一列
其中包含正整數 X。
(X <= 1000000)
對於占分至少 60% 的測試資料,X < 1250。
-------------------------------------------
(題 解)
import sys
for s in sys.stdin:
s=int(s)
print(int(s**3+3*(s**2)+7*s+4))
==================================
1005 [語言] 複雜的數值運算
-----------------------------------------
(問題敘述 )
來試試看用程式語言當計算機好了
請依照輸出格式輸出計算後所得的答案
設 f(x,y,z) = - (x^3) + y*(x^2) - z*x + 4
(上式中的 a^b 表示之意,與題目1004相同)
輸入說明
輸入共有一列
其中包含整數 X, Y, Z,以一個空白分隔。
(|X|,|Y|,|Z| <= 1000000, |X| 表示 X 的絕對值)
-----------------------------------------
(題 解)
import sys
for i in sys.stdin:
x,y,z=map(int,i.split())
print((-(x**3)+(y*(x**2))-(z*x)+4))
==================================
1006 [語言] 含條件判斷之數值運算
----------------------------------------
(問題敘述 )
傳說中的「If」敘述讓程式能在所判斷的各種情況執行不同的流程
設 f(x) 由以下程序定義:
(a) 若 x > 0, 則 f(x) = x^3 + 3x^2 + 7x + 4
(b) 若 x <= 0, 則 f(x) = 2x^3 - x^2 - 2
輸入說明
輸入共有一列
其中包含整數 X。
(|X| <= 1000)
-----------------------------------------
(題 解)
import sys
sInput=sys.stdin.readline().strip()
while(sInput!=""):
x = int(sInput)
if(x>0):
print(x**3+3*x**2+7*x+4)
else:
print(2*x**3-x**2-2)
sInput=sys.stdin.readline().strip()
==================================
1007 [語言] 復刻版數值運算
-----------------------------------------
(問題敘述 )
設 f(x) 由以下程序定義:
(a) 若 x > 0, 則 f(x) = x^3 - 311x^2 - 72x - 4
(b) 若 x <= 0, 則 f(x) = 2x^3 + 78x^2 - 2
輸入說明
輸入共有一列
其中包含整數 X。
(|X| <= 1000)
-----------------------------------------
(題 解)
import sys
sInput=sys.stdin.readline().strip()
while(sInput!=""):
x = int(sInput)
if(x>0):
print(abs(x**3-311*(x**2)-72*x-4)//10007)
print(abs(x**3-311*(x**2)-72*x-4)%10007)
else:
print(abs(2*x**3+78*(x**2)-2)//10007)
print(abs(2*x**3+78*(x**2)-2)%10007)
sInput=sys.stdin.readline().strip()
==================================
1008 [語言] 餘數版數值運算
---------------------------------------------
(問題敘述 )
設 f(x) = 2x^5 + 4x^3 + 7。
輸入說明
輸入共有兩列
第一列為正整數X。 (X <= 1000000000)
第二列為正整數Y。 (Y <= 1000000000)
-----------------------------------------
(題 解)
import sys
sInput=sys.stdin.readline().strip()
while(sInput!=""):
x=int(sInput)
sInput=sys.stdin.readline().strip()
y=int(sInput)
print((2*x**5+4*x**3+7)%y)
sInput=sys.stdin.readline().strip()
==================================
1009 [語言] 字串開頭之判斷
--------------------------------------
(問題敘述 )
溫教授在紙上寫了一串由大小寫英文字母組成的連續字串
你可以幫他檢查第一個字母是否為大寫嗎?
輸入說明
輸入共有一列,包含一個由大小寫英文字母組成的連續字串,長度介於1至10之間。
-----------------------------------------
(題 解)
import sys
sInput=sys.stdin.readline().strip()
while(sInput!=""):
if(sInput[0].isupper()==True):
print("YES")
else:
print("No")
sInput=sys.stdin.readline().strip()
==================================
沒有留言:
張貼留言