兔子繁殖问题
<div class="postcontent"><div id="cnblogs_post_body">问题描述:一对兔子从出生后第三个月开始,每月生一对小兔子。小兔子到第三个月又开始生下一代小兔子。假若兔子只生不死,一月份抱来一对刚出生的小兔子,问一年中每个月各有多少只兔子。问题分析:
1月2月3月4月5月6月。。。111+1=22+1=33+1+1=55+1+1+1=8。。。如上面表格数据可以看出第三个月以后兔子的对数是前两个月兔子对数的和。
算法设计:用a,b分别表示每月前2个月和前1个月的兔子对数,第1和第2个月的兔子数作为初值都为1,第3个月的兔子数为c=a+b。求第4个月的兔子数时,将第4个月的前2个月和前1个月的兔子对数分别存储在a,b中,即a=b,b=c,构造循环不变式。
java代码如下:
<div class="cnblogs_code">package nbe.sense7.vinci;public class RabbitNumber { /** * @param args * @author YoVinci * @since 6/5/2012 */ public static void main(String[] args) { // TODO Auto-generated method stub int a=1, b=1, c; for(int i=1; i<=12; i++){ if(i<=2){ System.out.println("第" + i + "个月的兔子数:1"); }else{ c = a + b; System.out.println("第" + i + "个月的兔子数:" + c); a = b; b = c; } } }}
页:
[1]