标签: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; } }
标签:scan next ring pre 总数 计算 analysis 输入 中间
原文地址:http://www.cnblogs.com/caizhen/p/7792562.html