飆程式網 Python 題解 (new)

飆程式網 ( http://khcode.m-school.tw/ )  題解

題號
上傳解答
離線解答 ( 線下測試 )
#1000
(3000)
PY2 / PY3:
(
什麼都不用直接上傳
PY2 / PY3:
(
什麼都不用直接上傳
#1001
(3001)
print('Hello World')
print('Hello FHHS')
print('Hello World')
print('Hello FHHS')
#1003
數科平台
(3003)
飆程式網  #1003
ipline=input()
print(ipline)
print(ipline)
飆程式網  #1003
ipline='FHHS123fhhs'
print(ipline)
print(ipline)
#1004

數科平台
(3004)
飆程式網  #1004
# x=13
x=int(input())
y = (x**3) + 3*(x**2) + 7*x + 4
print(y)
飆程式網  #1004
x=13
# x=int(input())
y = (x**3) + 3*(x**2) + 7*x + 4
print(y)
#1005





數科平台
(3005)
飆程式網  #1005
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)
# 飆程式網  #1005-0 
# ipline='3 17 15'
ipline=input()
print(ipline)

t=ipline
# print(t)

# 1st numeber
sl=t.find(' ')
# print(int(t[0:sl]))
x=int(t[0:sl])


# 2nd number
lot=len(t)
t=t[sl+1:lot+1]
sl=t.find(' ')
#print(int(t[0:sl]))
y=int(t[0:sl])

# 3rd number
# print(t)
sl=t.find(' ')
lot=len(t)
t=t[sl+1:lot]
#print(t)
z=int(t)

f= - (x**3) + y*(x**2) - z*x + 4
print(f)

------------------------------------------------
# 1005-1
#ipline =input()
ipline='13 17 15'
a= list(map(int,ipline.split(' ')))

x=a[0]
y=a[1]
z=a[2]
f= - (x**3) + y*(x**2) - z*x + 4
print(f)




在解題系統使用 Python解題讀入測試資料
    可用 sys.stdin   input() 標準輸入:
      解題系統: ZeroJudge  飆程式網Python解題讀入測試資料說明:
  1. 線上解題系統的題目中一般都有含3個測試資料,當你把程式寫好以後送到解題系統系統上應該還有56筆測試資料,Python 讀取測試資料的方法有兩種:
(1). input()           # 簡單易用
            
(2). import sys     #  標準輸入函數
                  sInput=sys.stdin.readline().strip()    #
上面兩個指令基本上都是可以從標準輸入設備讀讀入測試資料,資料又分單筆資料和連續資料,連續資料必須由使用者想辦法分割成單筆資料,以便程式執行時使用輸入的數據。
5
 1 12 123 1234 12345
上面兩行上面一行是單筆資料,下面一行是五個連續資料,程式撰寫者應該具備把單行連續資料拆解成單筆資料,例如把第二行拆解成串列:
[1, 12, 123, 1234, 12345]

2.   使用  input()  拆解連續資料成單筆資料
[範例程式]       ( 0-input().py )
n=int(input('input 單筆數字 n:\n'))
list01=list(map(int,input('input多筆數字 n:\n').split()))
print(n)
print(list01,'\n')

[執行結果]
input 單筆數字 n:
12
input 多筆數字 n:
1 3 5 7 9 11 13
12
[1, 3, 5, 7, 9, 11, 13]  

3.    使用  sys.stdin.read 拆解連續資料成單筆資料
python中的sys.stdin 有二種指令:
(1). sys.stdin.readline() 僅接受一行的全部輸入
可在末尾加上.strip().strip(“\n”)去掉末尾的換行符, :
line=sys.stdin.readline().strip()     #末尾加.strip() ,去掉了換行符
(2). sys.stdin.read()可以接受多行的標準輸入,包括末尾的'\n'      

使用 sys.stdin 解題
==================================
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 [語言字串開頭之判斷
--------------------------------------
(
問題敘述 )
溫教授在紙上寫了一串由大小寫英文字母組成的連續字串
你可以幫他檢查第一個字母是否為大寫嗎?
輸入說明
輸入共有一列,包含一個由大小寫英文字母組成的連續字串,長度介於110之間。

-----------------------------------------
(
 )
import sys

sInput=sys.stdin.readline().strip()

while(sInput!=""):
    if(sInput[0].isupper()==True):
        print("YES")
    else:
        print("No")
    sInput=sys.stdin.readline().strip()

==================================

2 則留言:

  1. import math
    # max num=1000000, 2^n=1000000,log(2 ^n)=10^6
    maxy=round(6/math.log(2,10)) ; # print(maxy)

    x=0
    n=int(input())
    f=True
    while f :
    y=maxy
    while f and y > 1 :
    y=y-1 ; # print(x,y)
    x=int(round(pow ( n , 1/y )))
    if x ** y == n :
    print(x,y)
    f=False

    回覆刪除