码迷,mamicode.com
首页 > 其他好文 > 详细

2017-11-06

时间:2017-11-06 13:10:47      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:scan   next   ring   pre   总数   计算   analysis   输入   中间   

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;
        
    }
    
    
    
    
}

 

2017-11-06

标签:scan   next   ring   pre   总数   计算   analysis   输入   中间   

原文地址:http://www.cnblogs.com/caizhen/p/7792562.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!