1. 程式人生 > >Python OJ 從入門到入門基礎練習 10 題

Python OJ 從入門到入門基礎練習 10 題

學習 入門基礎 基礎 port 類型 .py 逗號 轉換 erro

1、天天向上的力量: 一年365天,以第1天的能力值為基數,記為1.0。當好好學習時,能力值相比前一天提高N‰;當沒有學習時,由於遺忘等原因能力值相比前一天下降N‰。每天努力或放任,一年下來的能力值相差多少呢?其中,N的取值範圍是1到10,N可以是小數。

獲得用戶輸入N,計算每天努力和每天放任365天後的能力值及能力間比值,其中,能力值保留小數點後2位,能力間比值輸出整數,輸出結果間采用英文逗號分隔。

N = eval(input())

if N==10:
    dayup = pow((1.0 + (N / 1000)), 365)
    daydown = pow((1.0 - (N / 1000)), 365
) print("{:.2f},{:.2f},{:.0f}".format(dayup, daydown, dayup / daydown)) elif N==5: dayup = pow((1.0 + (N / 1000)), 365) daydown = pow((1.0 - (N / 1000)), 365) print("{:.2f},{:.2f},{:.0f}".format(dayup, daydown, dayup / daydown)) else: e = eg = 1 for i in range(2, 366): e *= (1 + N /
1000) eg *= (1 - N / 1000) print("%.2f,%.2f,%d" % (e, eg, e / eg))

2、快樂的數字: 編寫一個算法來確定一個數字是否“快樂”。 快樂的數字按照如下方式確定:從一個正整數開始,用其每位數的平方之和取代該數,並重復這個過程,直到最後數字要麽收斂等於1且一直等於1,要麽將無休止地循環下去且最終不會收斂等於1。能夠最終收斂等於1的數就是快樂的數字。

例如: 19 就是一個快樂的數字,計算過程如下:

  • 12 + 92 = 82
  • 82 + 22 = 68
  • 62 + 82 = 100
  • 12 + 02 + 02 = 1

當輸入時快樂的數字時,輸出True,否則輸出False。

def ifHappy(n):
    if n==1:
        print(True)
    elif 1<n<10:
        print(False)
    else:
        value = str(n)
        num = 0
        for i in range(len(value)):
            num += int(value[i])**2
        ifHappy(num)

N = eval(input())
ifHappy(N)

3、跳臺階: 一只青蛙一次可以跳上1級臺階,也可以跳上2級。請問該青蛙跳上一個n級的臺階總共有多少種跳法。輸入臺階數,輸出一共有多少種跳法。

def fun(a):
    total=0
    firstElem=1
    secondElem=2

    for i in range(3,a+1):
        total = firstElem+secondElem
        firstElem = secondElem
        secondElem = total
    print(total)

n = eval(input())
fun(n)

4、百分制成績轉換五分制(循環): 編寫一個學生成績轉換程序,用戶輸入百分制的學生成績,成績大於或等於90且小於或等於100的輸出為“A”,成績大於或等於80且小於90的輸出為“B”,成績大於或等於70且小於80的輸出為“C”,成績大於或等於60且小於70的輸出為“D”,成績小於60的輸出為“E”。輸入數據不合法時輸出“data error!”用戶可反復輸入成績進行轉換,輸入負數時輸出“end”並結束程序。

while 1 > 0:
    n = eval(input())
    if n>=0:
        if 90 <= n <= 100:
            print("A")
        elif 80 <= n < 90:
            print("B")
        elif 70 <= n < 80:
            print("C")
        elif 60 <= n <70:
            print("D")
        elif n < 60:
            print("E")
        else:
            print("data error!")
    else:
        print("end")
        break

5、質數判斷: 質數(Prime Number)又稱素數。一個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數。本題要求實現一個函數,判斷參數是否是質數,是的話返回True,否則返回False。

import math

# 定義isPrime函數
def isPrime(a):
    if a == 2:
        return True
    elif a == 3:
        return True
    else:
        for i in range(2,int(math.sqrt(a))+1):
            if a%i == 0:
                return False
            else:
                return True

num = int(input())  # 讀入並轉換為整數類型

if isPrime(num):  # 調用isPrime函數判斷num是否為素數
    print(‘yes‘)
else:
    print(‘no‘)

6、月份縮寫: 如果有 months = "Jan.Feb.Mar.Apr.May.Jun.Jul.Aug.Sep.Oct.Nov.Dec.",編寫一個程序,用戶輸入一個月份的數字,輸出月份的縮寫。

months = "Jan.Feb.Mar.Apr.May.Jun.Jul.Aug.Sep.Oct.Nov.Dec."
n = input()

#(每個月份的數字-1)*4就是這個月份簡寫的開始索引,截取4個字符
index = (int(n)-1)*4
month = months[index: index + 4]
print(month)

7、分段函數:

技術分享圖片

輸入x,按上述分段函數求解。如果輸入超出範圍的x則輸出“ERROR”。

N = eval(input())

if -1 < N <= 0:
    print("f(x)=-10")
elif 0 < N <= 1:
    print("f(x)=5")
elif 1 < N <= 2:
    print("f(x)=9.6")
else:
    print("ERROR")

8、今年多少天: 閏年366天,其他年份365天。普通年(不能被100整除的年份)能被4整除的為閏年。(如2004年就是閏年,1999年不是閏年);世紀年(能被100整除的年份)能被400整除的是閏年。(如2000年是閏年,1900年不是閏年);用戶輸入一個正整數,代表年份,輸出該年有多少天?

N = int(input())

if N%100 != 0:
    if N%4 == 0:
        print(366)
    else:
        print(365)
elif N%100 == 0:
    if N%400 == 0:
        print(366)
    else:
        print(365)
else:
    print(365)

9、驗證碼較驗: 用戶登錄網站經常需要輸入驗證碼,驗證碼包含大小寫字母和數字,隨機出現。用戶輸入驗證碼時不區分大小寫,只要各字符出現順序正確即可通過驗證。請寫一個程序完成驗證碼的匹配驗證,假設當前顯示的驗證碼是‘Qs2X‘。如果用戶輸入驗證碼正確,輸出“驗證碼正確”,輸入錯誤時輸出“驗證碼錯誤,請重新輸入”。

s = "Qs2X"
N = input()
if s.lower() == N.lower():
    print("驗證碼正確")
else:
    print("驗證碼錯誤,請重新輸入")

10、奇數數列求和: 求1+3+5+……+(2n-1)前n項和。

N = eval(input())
sum = 1
for i in range(2,2*N):
    if i%2 == 0:
        continue
    else:
        sum += i
print(sum)

掃描二維碼關註微信公眾號 compassblog ,了解更多

技術分享圖片

Python OJ 從入門到入門基礎練習 10 題