1. 程式人生 > >Python和Java程式設計題(二)

Python和Java程式設計題(二)

題目:古典問題:有一對兔子,從出生後第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         int
n=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 return
1; 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))

這道題主要是弄懂兔子成長規律,實現只需要遞迴計算即可