Python-nowcoder吃糖果

題目描述

名名的媽媽從外地出差回來,帶了一盒好吃又精美的巧克力給名名(盒內共有 N 塊巧克力,20 > N >0)。 媽媽告訴名名每天可以吃一塊或者兩塊巧克力。 假設名名每天都吃巧克力,問名名共有多少種不同的吃完巧克力的方案。 例如: 如果N=1,則名名第1天就吃掉它,共有1種方案; 如果N=2,則名名可以第1天吃1塊,第2天吃1塊,也可以第1天吃2塊,共有2種方案; 如果N=3,則名名第1天可以吃1塊,剩2塊,也可以第1天吃2塊剩1塊,所以名名共有2+1=3種方案; 如果N=4,則名名可以第1天吃1塊,剩3塊,也可以第1天吃2塊,剩2塊,共有3+2=5種方案。 現在給定N,請你寫程序求出名名吃巧克力的方案數目。
輸入描述:
輸入只有1行,即整數N。
輸出描述:
可能有多組測試數據,對於每組數據,
輸出只有1行,即名名吃巧克力的方案數。
https://interview.nowcoder.com/ta/kaoyan?asc=false&order=acceptRate

解題思路

列出數列是:1,2,3,5,8,13
即後一個數是前兩個數的和,類似斐波那契數列,故使用遞歸法

def findPlan(num):
	if num == 1:
		return 1
	elif num == 2:
		return 2
	else:
		return findPlan(num-1)+findPlan(num-2)
try:
	while True:
		n = int(input())
		print(findPlan(n))
except Exception:
	pass

注意點:
1、按照要求進行輸入和輸出,別自己多此一舉int(input(“請輸入巧克力數:”))
2、理解“可能有多組測試數據,對於每組數據,輸出只有1行”的要求:即循環
try-except:pass 遇到錯誤時直接中斷整個循環

try:
    for i in range(x):
        i += 1
        print(i)
except:
    pass

try+except就是當try的從屬代碼執行遇到錯誤時,中斷try從屬代碼並執行except的從屬語句,結束循環

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章