Day 5 前四天總結練習

2022-09-24 05:42:13 字數 2547 閱讀 5985

水仙花數是各位立方和等於這個數本身的數 abc = a*a*a+b*b*b+c*c*c

例如 153 = 1*1*1 + 5*5*5 + 3*3*3

示例1

'''

找出100~999之間的所有水仙花數

'''for num in range(100, 1000): #

遍歷100到999

low = num % 10 #

除10取餘數是個位數

mid = num // 10 % 10 #

除10取模 再除10取餘數是十位數

high = num // 100 #

除100取模 是百位數

if num == low ** 3 + mid ** 3 + high ** 3: #

計算各個位數的立方和

print(num) #

輸出水仙花數

完美數是除自身外其他所有因子的和正好等於這個數本身的數

例如 6 = 1 + 2 + 3

28 = 1 + 2 + 4 + 7 + 14

示例2

'''

找出1~9999之間的所有完美數

第一種方案

1 遍歷1-9999, 列表 range(1,10000)

2 假設當前遍歷值n, 二次遍歷1到 n的平方根+1

3 假設二次遍歷值m, 判斷m是不是n的因子(取余為0),如果是,計算因子m的加和

4 如果m是n的因子,當m大於1並且不是n的平方根時, 那麼m*k = n, k是另外的乙個因子,將k加和

5 二次遍歷結束後,判斷因子的加和是否等於n, 如果相等,則n是完美數

6 繼續遍歷1-9999

'''import

time

import

math

start =time.perf_counter()

for num in range(1, 10000):

sum =0

for factor in range(1, int(math.sqrt(num)) + 1):

if num % factor ==0:

sum +=factor

if 1 < factor != num /factor:

sum += num /factor

if sum ==num:

print

(num)

end =time.perf_counter()

print("

", (end - start), "秒"

)'''

第二種方案

'''start2 =time.perf_counter()

for num in range(1, 10000):

sum =0

for factor in range(1, num//2 + 2):

if num % factor ==0:

sum +=factor

if sum ==num:

print

(num)

end2 =time.perf_counter()

print("

", (end2 - start2), "秒"

)'''16

28496

812816

28496

8128

通過比較上面兩種不同的解決方案的執行時間 意識到優化程式的重要性

'''

1只公雞5元 1只母雞3元 3只小雞1元 用100元買100隻雞

問公雞 母雞 小雞各有多少只?

示例3

'''

1 假設公雞 x只,母雞 y 只, 小雞z 只

2 公雞乙隻5元, 公雞的數量必須在 0-19之間

3 母雞乙隻3元, 母雞的數量必須在 0-33之間

4 總共100隻雞, 小雞的數量是100-x-y

5 總共花費100元,所以5x+3y+(100-x-y)/3 = 100

6 遍歷x,y的取值範圍,如果等式5成立,那麼此次遍歷的x,y,z就是購買的數量

'''for x in range(0, 20):

for y in range(0, 33):

z = 100 - x -y

if 5 * x + 3 * y + z / 3 == 100:

print('

公雞: %d只, 母雞: %d只, 小雞: %d只

' %(x, y, z))

'''要理解程式背後的演算法 - 窮舉法

公雞: 0只, 母雞: 25只, 小雞: 75只

公雞: 4只, 母雞: 18只, 小雞: 78只

公雞: 8只, 母雞: 11只, 小雞: 81只

公雞: 12只, 母雞: 4只, 小雞: 84只

'''

每日總結 Day5

1.今天終於最終完成了對ubuntu系統用作伺服器的全部相關配置,包括遠端桌面訪問,moodle訪問的url重定向 gitlab的訪問等。2.開始了自己專案的工作。配置好了自己的阿里雲伺服器,基本已將相關檔案及資料庫從原先的fzh的伺服器成功遷移到自己的雲伺服器。使用xftp對雲伺服器進行簡潔的視覺...

藍橋杯練習day5

1.矩陣乘法 題目描述 給定乙個n階矩陣a,輸出a的m次冪 m是非負整數 例如 a 1 23 4 a的2次冪 7 10 15 22 輸入第一行是乙個正整數n m 1 n 30,0 m 5 表示矩陣a的階數和要求的冪數 接下來n行,每行n個絕對值不超過10的非負整數,描述矩陣a的值 解題分析 是一道數...

專案問題總結day5

1.mysql保留字問題 之前在建表的時候命名了乙個欄位為condition,然後報錯如下。然後發現是不小心命名到了mysql的保留字,更改之後錯誤消除。2.團隊合作的問題 之前我一直把定需求 字段 畫圖的任務交給策劃,剛開始還好,勉強算進行順利,但是後來發現策劃們字段常常是隨著圖變而變的,而且需求...