最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python模擬練習(xí)題總結(jié)(附答案)

 更新時(shí)間:2024年11月18日 09:37:03   作者:小虎牙^O^  
這篇文章主要給大家介紹了關(guān)于python模擬練習(xí)題的相關(guān)資料,文中涉及質(zhì)因數(shù)分解、開根變換、立方體拼接、日期計(jì)算、按位異或、停車場(chǎng)收費(fèi)、整數(shù)操作、減法運(yùn)算、相鄰數(shù)之和、以及最長(zhǎng)勾子序列的尋找,每題都有具體的輸入輸出示例和代碼計(jì)算過(guò)程,需要的朋友可以參考下

問(wèn)題一

如果一個(gè)數(shù) p 是個(gè)質(zhì)數(shù),同時(shí)又是整數(shù) a的約數(shù),則 p 稱為 a的一個(gè)質(zhì)因數(shù)。
請(qǐng)問(wèn) 2024 有多少個(gè)質(zhì)因數(shù)?

步驟 1: 分解 2024

首先,2024 是偶數(shù),說(shuō)明可以被 2 整除。我們從 2 開始進(jìn)行除法分解:

2024÷2=1012

1012÷2=506 

506÷2=253

253 不是偶數(shù),所以它不能再被 2 整除。我們接下來(lái)檢查 253 能否被 3 整除。因?yàn)?253 各位數(shù)字之和 2+5+3=10,10 不能被 3 整除,因此 253 不能被 3 整除。

接下來(lái)檢查 253 能否被 5 整除,253 末尾不是 0 或 5,所以不能被 5 整除。

然后檢查 253 能否被 11 整除。計(jì)算 253 除以 11:

253÷11=23

所以,253 可以被 11 整除,商為 23。23 是一個(gè)質(zhì)數(shù),無(wú)法再分解。

步驟 2: 質(zhì)因數(shù)分解

通過(guò)以上步驟,我們可以得出 2024 的質(zhì)因數(shù)分解:

2024=23×11×232024=23×11×23

步驟 3: 質(zhì)因數(shù)的個(gè)數(shù)

質(zhì)因數(shù)包括 2、11 和 23。因此,2024 的質(zhì)因數(shù)有 3 個(gè),分別是 2、11 和 23。

答案:

2024 的質(zhì)因數(shù)有 3 個(gè)。

問(wèn)題二

對(duì)于一個(gè)整數(shù) n ,我們定義一次開根變換會(huì)將 n 變?yōu)殚_根號(hào)后的整數(shù)部分。即變?yōu)槠椒胶筒怀^(guò) n 的數(shù)中的最大數(shù)。

例如,20 經(jīng)過(guò)開根變換將變?yōu)?4 ,如果再經(jīng)過(guò)一次開根變換將變?yōu)?2 ,如果再經(jīng)過(guò)一次開根變換將變?yōu)?1 。

請(qǐng)問(wèn),2024經(jīng)過(guò)多少次開根變換后會(huì)變?yōu)?1 ?

初始值為 2024。

第一次開根變換:2024≈45.0112024?≈45.011,取整數(shù)部分為 45。

第二次開根變換:45≈6.70845?≈6.708,取整數(shù)部分為 6。

第三次開根變換:6≈2.4496?≈2.449,取整數(shù)部分為 2。

第四次開根變換:2≈1.4142?≈1.414,取整數(shù)部分為 1。

因此,2024經(jīng)過(guò) 4 次開根變換后會(huì)變?yōu)?1。

代碼計(jì)算:

import math
def abc(n):
    c = 0
    while n > 1:
        n = math.isqrt(n)  
        c += 1
    return c
n = 2024
a = abc(n)
print(a)

問(wèn)題三

小藍(lán)有很多 1x1x1 的小立方體,他可以使用多個(gè)立方體拼成更大的立方體。

例如,小藍(lán)可以使用 8 個(gè)小立方體拼成一個(gè)大立方體,每邊都是 2 個(gè)。

又如,小藍(lán)可以使用 27 個(gè)小立方體拼成一個(gè)大立方體,每邊都是 3 個(gè)。

現(xiàn)在,小藍(lán)有 2024 個(gè)小立方體,他想再購(gòu)買一些小立方體,用于拼一個(gè)超大的立方體,要求所有的小立方體都用上,拼成的大立方體每邊長(zhǎng)度都相等。 請(qǐng)問(wèn),小藍(lán)最少需要購(gòu)買多少個(gè)小立方體?

大立方體的體積: 一個(gè)邊長(zhǎng)為 n 的大立方體的體積是 n**3(即 n×n×n)。

目標(biāo): 我們需要找到一個(gè) n,使得 n**3≥2024,并且 n**3−2024 是最小的,即最少需要購(gòu)買的立方體數(shù)量。

計(jì)算 2024 的立方根,以估計(jì)一個(gè)接近的 nn。我們可以用計(jì)算器計(jì)算:

2024≈12.6348

因此,邊長(zhǎng) n 至少應(yīng)該是 13,因?yàn)?123=1728小于 2024,而 133=2197 大于 2024。

133=2197 是一個(gè)大立方體的體積。

小藍(lán)已經(jīng)有 2024 個(gè)小立方體,所以他需要購(gòu)買的數(shù)量是:

2197−2024=173

代碼計(jì)算:

n = 2024
i = 13
while i**3 < n:
    i += 1
x = i**3
a = x - n
print("小藍(lán)最少需要購(gòu)買的立方體數(shù)量:", a)

問(wèn)題四

如果一個(gè)日期的日期以 1 結(jié)尾(1日、11日、21日、31日)且為星期一,則稱這個(gè)日期為一好日期。

請(qǐng)問(wèn)從 1901 年 1 月 1 日至 2024 年 12 月 31 日總共有多少個(gè)一好日期。

提示:1901 年 1 月 1 日是星期二。

確定日期范圍: 從 1901 年 1 月 1 日到 2024 年 12 月 31 日。

了解每個(gè)月的 "1 日"、"11 日"、"21 日"、"31 日": 這些是以 1 結(jié)尾的日期。我們需要檢查每個(gè)月這些日期是否是星期一。

確定每年的每個(gè)月的具體情況: 每年的不同月份中,某些月份的日期可能會(huì)出現(xiàn) 31 日,而有些月份(如 2 月、4 月、6 月等)沒有 31 日。

確定每個(gè)日期是星期幾: 利用已知的起始日期(1901 年 1 月 1 日是星期二),我們可以通過(guò)計(jì)算每個(gè)日期的星期幾來(lái)確定是否是星期一。

代碼計(jì)算:

import datetime
start_date = datetime.date(1901, 1, 1)
good_dates_count = 0

# 遍歷從1901年1月1日到2024年12月31日的日期
for year in range(1901, 2025):
    for month in range(1, 13):
        # 檢查該月的1日、11日、21日、31日(如果有31日)
        for day in [1, 11, 21]:
            try:
                # 創(chuàng)建該日期
                current_date = datetime.date(year, month, day)
                # 如果該日期是星期一(星期一對(duì)應(yīng)的數(shù)字是0)
                if current_date.weekday() == 0:
                    good_dates_count += 1
            except ValueError:
                # 如果日期無(wú)效(如2月30日),則跳過(guò)
                pass

        # 檢查31日是否在該月中有效
        if month in [1, 3, 5, 7, 8, 10, 12]:  # 有31日的月份
            try:
                current_date = datetime.date(year, month, 31)
                if current_date.weekday() == 0:
                    good_dates_count += 1
            except ValueError:
                pass
print("一好日期的總數(shù)是:", good_dates_count)

問(wèn)題五

兩個(gè)數(shù)按位異或是指將這兩個(gè)數(shù)轉(zhuǎn)換成二進(jìn)制后,最低位與最低位異或作為結(jié)果的最低位,次低位與次低位異或作為結(jié)果的次低位,以此類推。

例如,3 與 5 按位異或值為 6 。

小藍(lán)有以下 30 個(gè)整數(shù):

9226, 4690, 4873, 1285, 4624, 1596, 6982, 590, 8806, 121, 8399, 8526, 5426, 64, 9655, 7705, 3929, 3588, 7397, 8020, 1311, 5676, 3469, 2325, 1226, 8203, 9524, 3648, 5278, 8647.

小藍(lán)想找一個(gè)整數(shù) V ,使得 V 與這 30 個(gè)數(shù)分別異或后,得到的 30 個(gè)數(shù)的平方和最小。請(qǐng)問(wèn)平方和最小是多少?

1.將每個(gè)數(shù)轉(zhuǎn)換為 16 位二進(jìn)制數(shù)(因?yàn)樽畲髷?shù) 9655 的二進(jìn)制表示需要 14 位,可以補(bǔ)充到 16 位來(lái)統(tǒng)一處理)。

2.對(duì)每一位,統(tǒng)計(jì) 30 個(gè)數(shù)中該位為 1 的數(shù)量。

3.如果該位為 1 的數(shù)量超過(guò)一半(即大多數(shù)數(shù)在該位上是 1),則選擇 V在這一位上為 1,否則為 0。

4.根據(jù)得到的 V 計(jì)算每個(gè) ai⊕V 的平方和。

代碼計(jì)算:

nums = [
    9226, 4690, 4873, 1285, 4624, 1596, 6982, 590, 8806, 121, 8399, 8526, 5426,
    64, 9655, 7705, 3929, 3588, 7397, 8020, 1311, 5676, 3469, 2325, 1226, 8203,
    9524, 3648, 5278, 8647
]
bit_length = 16
count_ones = [0] * bit_length
for num in nums:
    for i in range(bit_length):
        if num & (1 << (bit_length - 1 - i)):
            count_ones[i] += 1
V = 0
for i in range(bit_length):
    if count_ones[i] > len(nums) // 2:
        V |= (1 << (bit_length - 1 - i))
squared_sum = 0
for num in nums:
    squared_sum += (num ^ V) ** 2
print(f"最小的平方和是: {squared_sum}")

問(wèn)題六

小藍(lán)在一個(gè)停車場(chǎng)停車。

停車場(chǎng)的收費(fèi)規(guī)則為:每 15 分鐘收費(fèi) 2 元,不滿 15 分鐘的不收費(fèi)。

小藍(lán)總共停車 n 分鐘,請(qǐng)問(wèn)收費(fèi)總額是多少?

【輸入格式】 輸入一行包含一個(gè)整數(shù) n ,表示小藍(lán)停車的時(shí)長(zhǎng)。

【輸出格式】 輸出一行包含一個(gè)整數(shù),表示停車費(fèi)用。

【樣例輸入】 150

【樣例輸出】 20

【樣例輸入】 2024

【樣例輸出】 268

我們可以使用整數(shù)除法和取余操作來(lái)幫助我們確定停車時(shí)長(zhǎng)的分段數(shù)。

可以用 (n + 14) // 15 來(lái)計(jì)算向上取整的次數(shù)。如果 n 不是15的整數(shù)倍,就多計(jì)一段。

例如:對(duì)于 n = 16(16 + 14) // 15 的結(jié)果是 2,表示收費(fèi)2段15分鐘。

每段15分鐘收費(fèi)2元,所以最終收費(fèi)就是 (n + 14) // 15 * 2。

代碼計(jì)算

n=int(input())
if(n>=15):
    b=n//15
    c=b*2
print(c)

問(wèn)題七

小藍(lán)有一個(gè)整數(shù) n ,每次操作,可以將這個(gè)整數(shù)的每個(gè)非零數(shù)位減少 1 。

請(qǐng)問(wèn)經(jīng)過(guò)多少次操作,這個(gè)數(shù)會(huì)變?yōu)?0 。

例如,整數(shù) 2024 經(jīng)過(guò)一次操作變?yōu)?1013,再經(jīng)過(guò)一次操作變?yōu)?2 (即0002),再經(jīng)過(guò)兩次操作變?yōu)?0 ,總共經(jīng)過(guò) 4 次變換變?yōu)?0 。

【輸入格式】 輸入一行包含一個(gè)整數(shù) n 。

【輸出格式】 輸出一行,包含一個(gè)整數(shù),表示答案。

【樣例輸入】 2024

【樣例輸出】 4

觀察每一位:整數(shù)的每一位非零數(shù)字在每一次操作中都會(huì)減少 1,直到該位數(shù)字變成 0。

操作次數(shù):可以通過(guò)統(tǒng)計(jì)該整數(shù)各位的最大值來(lái)判斷操作次數(shù)。因?yàn)槊恳晃粩?shù)字都會(huì)在每一次操作中減少 1,所以最終需要進(jìn)行的操作次數(shù)就是這整個(gè)數(shù)各位最大數(shù)字的數(shù)量。

代碼計(jì)算:

def min_operations_to_zero(n):
    # 轉(zhuǎn)換為字符串,遍歷每一位字符
    digits = str(n)
    # 找出所有非零數(shù)字的最大值
    max_digit = max(int(d) for d in digits if d != '0')
    return max_digit

n = int(input().strip())

print(min_operations_to_zero(n))

問(wèn)題八

小藍(lán)有一個(gè)減法式子,形如 a-b,其中 a 和 b 都是非負(fù)整數(shù)(不保證結(jié)果非負(fù))。

請(qǐng)編程處理這個(gè)式子,輸出運(yùn)算結(jié)果。

【輸入格式】 輸入一行包含一個(gè)減法表達(dá)式,式子中僅含數(shù)字字符和一個(gè)減號(hào)。

【輸出格式】 輸出一行包含一個(gè)整數(shù),表示運(yùn)算結(jié)果。

【樣例輸入】 2024-1949

【樣例輸出】 75

【樣例輸入】 20-24

【樣例輸出】 -4

輸入格式中有一個(gè)減法符號(hào) -,它將兩個(gè)數(shù)字 a 和 b 分開。我們可以利用這個(gè)符號(hào)來(lái)分割輸入字符串,從而得到 a 和 b。

將解析出來(lái)的 a 和 b 轉(zhuǎn)換為整數(shù)后,直接進(jìn)行減法運(yùn)算,得出結(jié)果。

代碼計(jì)算:

e = input().strip()
a, b = e.split('-')
a = int(a)
b = int(b)
print(a - b)

問(wèn)題九

小藍(lán)有一個(gè)長(zhǎng)度為 n 的整數(shù)數(shù)列 a[1], a[2], ..., a[n] 。

對(duì)于一個(gè)給點(diǎn)的整數(shù) k ,小藍(lán)想找到相鄰間隔為 1 的 k 個(gè)數(shù) a[p], a[p+2], a[p+4], ..., a[p+2k-2],使得他們的和最大。其中 1 <= p <= n-2k+2。

給定數(shù)列和 k ,請(qǐng)問(wèn)給出最大的和。

【輸入格式】 輸入的第一行包含一個(gè)整數(shù) n 。

第二行包含 n 個(gè)整數(shù),相鄰數(shù)之間使用一個(gè)空格分隔,依次表示 a[1], a[2], ..., a[n] 。

第三行包含一個(gè)整數(shù) k 。

【輸出格式】 輸出一行,包含一個(gè)整數(shù),表示答案。

【樣例輸入】 10 2 1 4 7 4 8 3 6 4 7 2 【樣例輸出】 15 【樣例說(shuō)明】 取 p=4,a[4]+a[6]=7+8=15 最大。

代碼計(jì)算:

def max_sum(n, a, k):
    max_sum_value = float('-inf')

    for p in range(n - 2 * k + 2):
        current_sum = 0
        for i in range(k):
            current_sum += a[p + 2 * i]  # a[p], a[p+2], ..., a[p+2k-2]
        max_sum_value = max(max_sum_value, current_sum)

    return max_sum_value
n = int(input())
a = list(map(int, input().split()))
k = int(input())
result = max_sum(n, a, k)
print(result)

問(wèn)題十

小藍(lán)有一個(gè)長(zhǎng)度為 n 的整數(shù)序列 a[1], a[2], ..., a[n] 。

他希望從中找出一個(gè)最長(zhǎng)的子序列,形成一個(gè)勾的形狀(√)。

即找到 1 <= p[1] < p[2] < ... < p[k] <= n,滿足 a[p[1]] > a[p[2]] > a[p[3]] > ... > a[p[x]] < a[p[x+1]] < ... < a[p[k]] 。其中 k 是子序列的長(zhǎng)度,x 是勾中最小的位置。目標(biāo)是使得 k 最大。

請(qǐng)找出最大的勾的長(zhǎng)度。

【輸入格式】 輸入的第一行包含一個(gè)整數(shù) n 。

第二行包含 n 個(gè)整數(shù),相鄰數(shù)之間使用一個(gè)空格分隔,依次表示 a[1], a[2], ..., a[n] 。

【輸出格式】 輸出一行,包含一個(gè)整數(shù),表示答案。

【樣例輸入】 10 2 1 4 7 4 8 3 6 4 7 【樣例輸出】 5 【樣例說(shuō)明】 當(dāng) p = (4,5,7,9,10) 時(shí),a[4] , a[5] , a[7] , a[9] , a[10] 可形成一個(gè)長(zhǎng)度為 5 的勾:7,4,3,6,7。

代碼計(jì)算:

def longest_hoop(n, a):
    dec = [1] * n
    inc = [1] * n

    for i in range(1, n):
        for j in range(i):
            if a[i] < a[j]:
                dec[i] = max(dec[i], dec[j] + 1)
    for i in range(n - 2, -1, -1):
        for j in range(n - 1, i, -1):
            if a[i] < a[j]:
                inc[i] = max(inc[i], inc[j] + 1)

    # 計(jì)算勾的最大長(zhǎng)度
    max_length = 0
    for i in range(n):
        if dec[i] > 1 and inc[i] > 1:
            max_length = max(max_length, dec[i] + inc[i] - 1)

    return max_length

n = int(input())
a = list(map(int, input().split()))
print(longest_hoop(n, a))

總結(jié) 

到此這篇關(guān)于python模擬練習(xí)題的文章就介紹到這了,更多相關(guān)python模擬練習(xí)題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python3.6 + TensorFlow 安裝配置圖文教程(Windows 64 bit)

    Python3.6 + TensorFlow 安裝配置圖文教程(Windows 64 bit)

    這篇文章主要介紹了Python3.6 + TensorFlow 安裝配置的教程(Windows 64 bit),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python使用threading.local()實(shí)現(xiàn)線程局部存儲(chǔ)的完全指南

    Python使用threading.local()實(shí)現(xiàn)線程局部存儲(chǔ)的完全指南

    threading.local()是Python標(biāo)準(zhǔn)庫(kù)提供的線程局部存儲(chǔ)(Thread Local Storage, TLS)方案,讓同一段代碼在不同線程里擁有各自獨(dú)立的變量空間,從而避免加鎖,也避免了層層傳參的狼狽,所以本文介紹了Python使用threading.local()實(shí)現(xiàn)線程局部存儲(chǔ)的完全指南
    2026-01-01
  • python實(shí)現(xiàn)簡(jiǎn)易SSL的項(xiàng)目實(shí)踐

    python實(shí)現(xiàn)簡(jiǎn)易SSL的項(xiàng)目實(shí)踐

    本文主要介紹了python實(shí)現(xiàn)簡(jiǎn)易SSL的項(xiàng)目實(shí)踐,包括CA.py、server.py和client.py三個(gè)模塊,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • python3實(shí)現(xiàn)繪制二維點(diǎn)圖

    python3實(shí)現(xiàn)繪制二維點(diǎn)圖

    今天小編就為大家分享一篇python3實(shí)現(xiàn)繪制二維點(diǎn)圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • 使用celery和Django處理異步任務(wù)的流程分析

    使用celery和Django處理異步任務(wù)的流程分析

    Celery是 一個(gè)專注于實(shí)時(shí)處理的任務(wù)隊(duì)列,它還支持任務(wù)調(diào)度。 Celery快速,簡(jiǎn)單,高度可用且靈活。這篇文章主要介紹了使用celery和Django處理異步任務(wù)的流程分析,需要的朋友可以參考下
    2020-02-02
  • python的變量和簡(jiǎn)單數(shù)字類型詳解

    python的變量和簡(jiǎn)單數(shù)字類型詳解

    這篇文章給大家詳細(xì)介紹了python的變量和簡(jiǎn)單數(shù)字類型,文中介紹的很詳細(xì),相信對(duì)大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們可以參考借鑒
    2021-09-09
  • Python使用Spire.PDF庫(kù)高效合并多個(gè)PDF文檔

    Python使用Spire.PDF庫(kù)高效合并多個(gè)PDF文檔

    Python 提供了多種方式來(lái)處理 PDF 文檔,其中通過(guò) Spire.PDF 庫(kù)可以輕松實(shí)現(xiàn) PDF 文檔的批量合并,這種方法不僅代碼簡(jiǎn)潔,而且能夠精確控制合并過(guò)程,包括頁(yè)面順序和選擇性合并,下面小編就和大家詳細(xì)介紹一下吧
    2026-03-03
  • 淺談python拋出異常、自定義異常, 傳遞異常

    淺談python拋出異常、自定義異常, 傳遞異常

    本文給大家簡(jiǎn)單匯總了下Python中拋出異常、自定義異常,傳遞異常的簡(jiǎn)單應(yīng)用,有需要的小伙伴可以參考下
    2016-06-06
  • python連接讀寫操作redis的完整代碼實(shí)例

    python連接讀寫操作redis的完整代碼實(shí)例

    這篇文章主要介紹了python連接讀寫操作redis的完整代碼實(shí)例,包括redis連接與讀寫操作,redis-sentinel哨兵模式下Python操作redis,redis-cluster(集群)模式下Python操作redis,需要的朋友可以參考下
    2023-01-01
  • Pygame?transform模塊入門介紹

    Pygame?transform模塊入門介紹

    pygame.transform模塊允許您對(duì)加載、創(chuàng)建后的圖像進(jìn)行一系列操作,比如調(diào)整圖像大小、旋轉(zhuǎn)圖片等操作,感興趣的可以了解一下
    2022-08-08

最新評(píng)論

宜良县| 东至县| 靖边县| 新龙县| 克什克腾旗| 武宁县| 罗定市| 东辽县| 察哈| 塔河县| 左权县| 额尔古纳市| 德格县| 上林县| 诸城市| 旬阳县| 天津市| 铅山县| 奈曼旗| 台湾省| 昌平区| 北流市| 海门市| 南木林县| 盐源县| 莲花县| 疏附县| 龙山县| 顺平县| 县级市| 屯留县| 大连市| 东明县| 朝阳市| 资溪县| 皮山县| 沁源县| 郴州市| 凤山市| 北安市| 斗六市|