2017-11-06

Program:

有一对兔子,从出生后第3个月起每个月都生一对兔子,

小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,

问每个月的兔子总数为多少?

Analysis:从第一个月开始兔子的对数依次为:1,1,2,3,5,8......

从第三个月开始,每个月的兔子对数为前两月的和

代码实现如下:

/*
 * Date Written:2017-11-06
 * */

import java.util.Scanner;

public class TestDemo {

    public static void main(String args[]) {
        
        System.out.println( "请输入目标月份:" );
        Scanner scan = new Scanner(System.in);
        int month = scan.nextInt();                //取得用户输入
        
        System.out.println( "第" + month + "个月兔子总数:" + getNumber(month) + "对" );
        
    }
    
    //求解某月兔子的总对数
    public static int getNumber(int month) {
        
        int total = 1;        //记录兔子总对数,并初始化为1
        int num1 = 1;         //记录当前月份的前一个月的兔子总对数
        int num2 = 1;         //记录当前月份的兔子总对数
        int num = 0;          //交换时的中间值
            
        for( int i = 3; i <= month; i++ ) {            //从第三月分开始计算
                
            num = num1;
            num1 = num2;
            num2 += num;
                
            total = num2;
        }
            
        return total;
        
    }
    
    
    
    
}
原文地址:https://www.cnblogs.com/caizhen/p/7792562.html