zoukankan      html  css  js  c++  java
  • Python和Java编程题(二)

    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

    兔子的规律为数列1,1,2,3,5,8,13,21....

    题目来源:http://blog.sina.com.cn/s/blog_60fafdda0100wb21.html

    观察规律,可以发现,自从第三个月开始,每个月的兔子总数为前两个月兔子总数之和。

    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))

    这道题主要是弄懂兔子成长规律,实现只需要递归计算即可

  • 相关阅读:
    12个Web开发者应该掌握的Firebug技巧
    sql语句修改表结构
    从数据库中查询数据
    收发短信API
    日志12.03
    监听短信数据库变化
    漫谈C语言及如何学习C语言(转)
    阅读短信
    在src文件中寻找短信数据库表
    拦截短信示例1
  • 原文地址:https://www.cnblogs.com/xiang9286/p/9678026.html
Copyright © 2011-2022 走看看