python学習4週目:関数と再帰関数・ジョブ2014224
1プログラムを作成して、以下のテーマを完成します:(1点)
タイトル内容:
1つのフィボナッチ数列の上位10項は、1,2,3,5,8,13,21,34,55,89であり、最も大きい項の値がnを超えないフィボナッチ数列について、偶数の項の和を求める.
入力形式:
正の整数n、例えば100.
出力フォーマット:
2+8+34=44のような偶数の値の合計.
サンプルを入力:
100
出力サンプル:
44
時間制限:500 msメモリ制限:32000 kb
説明:フィボナッチ数列関数は再帰呼び出しに属するため、重複する計算が多く、計算に使用する時間が多く、テストプラットフォームでテストタイムアウトしているため、自分で書き換え、ループで計算を行う.
フィボナッチ数列関数:
タイトル内容:
1つのフィボナッチ数列の上位10項は、1,2,3,5,8,13,21,34,55,89であり、最も大きい項の値がnを超えないフィボナッチ数列について、偶数の項の和を求める.
入力形式:
正の整数n、例えば100.
出力フォーマット:
2+8+34=44のような偶数の値の合計.
サンプルを入力:
100
出力サンプル:
44
時間制限:500 msメモリ制限:32000 kb
説明:フィボナッチ数列関数は再帰呼び出しに属するため、重複する計算が多く、計算に使用する時間が多く、テストプラットフォームでテストタイムアウトしているため、自分で書き換え、ループで計算を行う.
フィボナッチ数列関数:
def fib(n):
if n == 0 or n == 1:
return 1
else:
return fib(n - 1) + fib(n - 2)
sum = 0
i = 0
num = int(raw_input())
while fib(i)
:
def fib_qiujie(n):
result = 0
sum = 0
i = 0
tmp1 = 0
tmp2 = 0
while result 1:
if result % 2 == 0:
sum += result
result = tmp2 +tmp1
tmp1 = tmp2
tmp2 = result
i += 1
print sum
num = int(raw_input())
fib_qiujie(num)
2
プログラムを して、 のテーマを します:(2 )
タイトル :
1800 1 1 が であることが られている 、 された と について、 の の が です.
:
と を す2 の
フォーマット:
、0は を します
サンプルを :
2033
12
サンプル:
6
:500 msメモリ :32000 kbdef is_leap_year(Year):
if Year % 4 == 0 and Year % 100 != 0 or Year % 400 == 0:
return True
else:
return False
def year_month_days(Year, Month):
if Month in (1, 3, 5, 7, 8, 10, 12):
return 31
elif Month in (4, 6, 9, 11):
return 30
elif is_leap_year(Year):
return 29
else:
return 28
def year_days(Year):
if is_leap_year(Year):
return 366
else:
return 365
def 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)
3
プログラムを して、 のテーマを します:(2 )
タイトル :
ハノータゲームでは,タワーA のn の をタワーBを してタワーCに することを むと, に されたnに して の が えられる.
:
の n
フォーマット:
するには
サンプルを :
2
サンプル:
Move 1 from A to B
Move 2 from A to C
Move 1 from B to C
:500 msメモリ :32000 kbdef hanoi(n, A, B, C):
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)
num = int(raw_input())
hanoi(num, 'A', 'B', 'C')