水仙花數是各位立方和等於這個數本身的數 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:
(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:
(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.團隊合作的問題 之前我一直把定需求 字段 畫圖的任務交給策劃,剛開始還好,勉強算進行順利,但是後來發現策劃們字段常常是隨著圖變而變的,而且需求...