使用者定義函式,遞迴函式相關問題
判斷乙個數即是素數,又是回文數
num=222;
defis_palin
(num):
num_p=0;
num_t=num;
while num_t !=0:
num_p=num_p*10+num_t%10;
num_t=num_t/10;
if num_p==num:
return
true;
else :
return
false;
defis_prime
(num):
for i in range(2,num):
if num%i == 0:
return
false;
return
true;
if is_palin(num) and is_prime(num):
print
"ok";
else :
print
"no";
2.漢諾塔問題(遞迴)
將前 n-1 個盤子,通過 c,從 a 移動到 b
從 a 到 c 移動第 n 個盤子
將前 n-1 個盤子,通過 a,從 b 移動到 c
def
hanoi
(n,a,b,c):
global count;
if n==1:
print
'move',n,'from',a,'to',c
else:
hanoi(n-1,a,c,b)
print
'move',n,'from',a,'to',c
hanoi(n-1,b,a,c)
n=int(raw_input());
hanoi(n,'a','b','c');
優勢(strength):它能使乙個蘊含遞迴關係且結構複雜的程式簡潔精煉, 增加可讀性 特別是在難於找到從邊界到解的全過程的情況下,如果把問題推進一步,其結果仍維持原問題的關係。
劣勢(weakness) :巢狀層次深,函式呼叫開銷大 重複計算
若已知2023年1月1日為星期3,則對於乙個給定的年份和月份,輸出這個月的最後一天是星期幾。
輸入格式:
兩行整數,分別代表年份和月份
輸出格式:
星期數,0代表星期日
輸入樣例:
輸出樣例:
時間限制:500ms記憶體限制:32000kb
def
is_leap_year
(year):
#判斷閏年
if year % 4 == 0
and year % 100 != 0
or year % 400 == 0:
return
true
else:
return
false
defyear_month_days
(year, month):
if month in (1, 3, 5, 7, 8, 10, 12):
return
31elif month in (4, 6, 9, 11):
return
30elif is_leap_year(year):
return
29else:
return
28def
year_days
(year):
if is_leap_year(year):
return
366else:
return
365def
weekday_year_month
(year, month):
weekday = 2
for year in range(1800, year):
weekday = (weekday + year_days(year) ) % 7
for month in range(1, month + 1):
weekday = (weekday + year_month_days(year, month)) % 7
print weekday
y = int(raw_input())
m = int(raw_input())
weekday_year_month(y, m)
暑期學習記錄04
列表和元組 a 1,2,3 b a b 1 4 print a 1 結果為 4 結果為 5 小測驗def func lst for i in range len lst 1 for j in range i 1,len lst if lst i lst j lst.insert i,lst.pop ...
暑期學習記錄06
1.輸入資料 input raw input python2.7中,使用input 函式輸入字串要輸入引號 m input 請輸入金州小學生 請輸入金州小學生 stephen curry print m stephen curry 2.輸出資料 1.輸出字串 print 字串常量或字串變數 格式化引...
爬蟲學習記錄 01
在檔案儲存及資料型別中的一些小問題 結語python 3.6 使用原生自帶的 urllib 模組進行爬蟲的開始 匯入模組urllib的request框架 import urllib.request 使用urlopen方法模擬使用者開啟網頁,以www.baidu.com為例。import urllib...