编程基础练习题及答案:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少?

2017年8月12日19:50:07 发表评论 17,888 views

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

分析:

1月1对a

2月1对a

3月2对,a+a1

4月3对,(a+a1)+a1

5月5对,((a+a1)+a1)+a1+a11

类推得出规律,当月出生的兔子等于前两月出生的兔子的总和。

 

java代码:

public class No1
{
	public static void main(String[] args){
		int i;//i表示月数
		int arr[]=new int[12];
		arr[0]=arr[1]=1;
		System.out.println("第1个月兔子1对"+","+"兔子总数2个");
		System.out.println("第2个月兔子1对"+","+"兔子总数2个");
		for(i=2;i<13;i++){
		arr[i]=arr[i-2]+arr[i-1];
		System.out.println("第"+(i+1)+"个月兔子"+arr[i]+"对"+","+"兔子总数"+(2*arr[i])+"个");
		}
	}
}

 

php代码:

<?php
$n;
$n1=1;$n2=1;
for($i=1;$i<=12;$i++){
	if($i==1||$i==2){
		echo "第".$i."月兔子数量是:1对。\n";
	}else{
		$n = $n2;//把上一月的数量赋值给临时变量
		$n2 = $n1 + $n2;//上月加上上月的数量
		$n1 = $n;//下次上上月的数量是这次上月的数量
		echo "第".$i."月的兔子数量是:".$n2."对。\n";
	}
}
?>

c语言代码:

#include <stdio.h>

int main(){
	int temp;
	int m1 = 1,m2 =1;
	for(int i=1;i<=12;i++){
		if(i==1||i==2){
			printf("第%d月的的兔子数量是:1,对。\n",i);
		}else{
			//把相对于相对于当前月的上月赋值
			temp = m2;
			//求当前月的数量,同时也是下次的上月数量
			m2 = m1 + m2;
			//重新设置上上月兔子的数量
			m1 = temp;
			printf("第%d月的的兔子数量是:%d,对。\n",i,m2);
		}
	}
}

C++;

#include <iostream>
#include <stdlib.h>
using namespace std;

int main(int argc, char const *argv[])
{
	int f1 = 1,f2 = 1,f;
	cout << "第1月兔子数量" << f1 << "对" << endl;
	cout << "第2月兔子数量" << f2 << "对" << endl;
	for (int i = 3; i <= 12; ++i)
	{
		f = f2;
		f2 = f1 + f2;
		f1 = f;
		cout << "第" << i << "月兔子数量" << f2 << "对" << endl;
	}
	return 0;
}

 

 

  • A+
所属分类:ACM

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: