"""
遞迴的演算法,必須滿足兩個條件:
1. 原問題與新問題有相同的形式
2. 遞迴就是一種迴圈,必須有乙個遞迴出口退出迴圈
""""""
n! = 1 * 2 * 3 * .... * n = (n-1)! * n 且 1!=1
即fac(n) = fac(n-1)* n
"""def fac(n):
if n == 1:
return 1
return fac(n-1) * n
print(fac(5)) # 120
""" 斐波那切數列
f0 = 0, f1 = 1, fn = f(n-1) + f(n-2)(n>=2)
"""def fib(n):
if n == 0:
return 0
if n == 1:
return 1
return fib(n-1) + fib(n-2)
print(fib(6)) # 8 , 0,1,2,3,5
"""
印度的舍罕王重賞宰相:乙個棋盤,第一格賞一粒麥,第二格賞兩粒,三格賞4粒,每一格比前一格多一倍,總共64格
""""""
f1 = 1, f2 = f1* 2, f3 = f2* 2... f64 = f63 * 2
f = f1 + f2 + f3 + ... + f64
"""def shehanwang(n):
t = 1
s = 1
for _ in range(2, n+1):
t *= 2
s += t
return s
print(shehanwang(64)) # 18446744073709551615
# 另一種思路, 每一格是2的n-1次方
l = [2 ** i for i in range(0, 64)]
print(sum(l)) # 18446744073709551615
"""
統計0-9這10個數字可以組成多少個不重複的三位數
""""""
根據排列組合,去除0開頭的有:a[3,10] -a[2,9] = 10 * 9 * 8 - 9 * 8 =648
"""def buchongfu():
counter = 0
for a in range(1, 10):
for b in range(0, 10):
for c in range(0, 10):
if(c != b and b != a and a != c):
counter += 1
return counter
print(buchongfu()) # 648
"""
給出任何自然數,反覆進行如下計算
(1) 若為奇數,則乘以3+1
(2)若為偶數,則除以2
最後總可以得到運算結果為1
"""def jiaogu(n):
nc = n
while nc != 1:
nc = nc * 3+1 if nc % 2 else nc / 2
print('%d符合角谷猜想' % n)
jiaogu(50) # 50符合角谷猜想
MySQL學習筆記之四 有關資料庫操作
一 用show顯示已有的資料庫 語法 show databases like wild 如果使用like wild部分,wild字串可以是乙個使用sql的 和 萬用字元的字串。功能 show databases列出在mysql伺服器主機上的資料庫。示例 mysql show databases li...
python學習之四
緊接著上週的學習,進行到了列表的學習 從列表中獲取元素 列表索引值是從0開始的 為列表名字 索引值 列表資料交換 temp member 0 member 0 member 1 member 1 temptemp臨時變數 列表資料的刪除 1.member.remove 所需刪除元素名 2.del語句...
python 學習系列教程四注釋
在這一節主要說一下注釋這項功能吧,在大多數程式語言中基本都會寫注釋,我在程式設計過程中都會寫,只有使用易語言的時候不寫,那個東西能看明白,很多人感覺不用寫,都能記得住,時間一長就完全忘記了,再看 就麻煩了。行了,python 注釋總結一句話就是 用 號,號後面寫注釋的內容。井號後面的內容都會被pyt...