Python和Java程式設計題(二)
阿新 • • 發佈:2018-12-10
題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?
兔子的規律為數列1,1,2,3,5,8,13,21....
觀察規律,可以發現,自從第三個月開始,每個月的兔子總數為前兩個月兔子總數之和。
Java實現
1 public class TestRabbit {// TestRabbit類 2 public static void main(String args[]) { 3 TestRabbit tb = new TestRabbit(); 4 intn=12; 5 int Sum = tb.Calculate(n);// n代表第個月 6 System.out.printf("第 %d個月的兔子總數為:%d",n,Sum);//格式化輸出時使用printf 7 } 8 9 /* 10 * 計算每個月的兔子總數 11 */ 12 public int Calculate(int j) { 13 if(j==1) { 14 return 1; 15 }else if(j==2) { 16 return1; 17 }else { 18 return Calculate(j-1)+Calculate(j-2);// 遞迴計算 19 } 20 } 21 }
Python實現
1 # -*- coding: utf-8 -*- 2 3 def CalculateRabbit(n):#計算每個月的兔子總數 4 if n == 1: 5 return 1 6 elif n == 2: 7 return 1 8 else: 9 return CalculateRabbit(n-1) + CalculateRabbit(n-2)10 11 if __name__ == '__main__': 12 N = 12 13 Sum = 0 14 Sum = CalculateRabbit(N) 15 print('第 %s 個月的兔子總數為: %s' % (N,Sum))
這道題主要是弄懂兔子成長規律,實現只需要遞迴計算即可