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

 第一种方法:

import java.util.Scanner;

public class Rab{
	public static void main(String[]args){
		int month;
		System.out.println("请输入养殖兔子的月份数:");
		Scanner in = new Scanner(System.in);
		month = in.nextInt();
		
		int sum[]= new int[month] ;
		sum[0] = 1;
		sum[1] = 1;
			
		for(int i=2;i<month;i++){
			sum[i] = sum[i-1]+sum[i-2];
		}
				
		System.out.println("第"+month+"个月的兔子总数是:"+sum[month-1]);
		
	}
}


第二种方法:

import java.util.Scanner;


public class practies4 {
	public static void main(String[]args){
	//变量声明;
		int n = 0; 
		while(n<3){
			GetKey gk = new GetKey();
			n = gk.getN();
		}
		System.out.println("请输入月份数:");
		Scanner in = new Scanner(System.in);
		n = in.nextInt();
		
		int[]a = new int[n];
		a[0]=1;
		a[1]=1;
		for(int i=2;i<n;i++){
			a[i]=a[i-1]+a[i-2];
		}
		System.out.println(n);
		System.out.println(a[n-1]);
	}
}

//实现对用户输入内容的控制,并获取n
class GetKey{
	private int pos;
	private String bufNum="";
	private byte[]buff =new byte[10];
	private int n;
	private int info;
	public int getN(){
		System.out.println("请输入你想知道第多少个月的兔子总数:");
		System.out.println("月份数必须大于2");
		while(true){
			try{
				info=System.in.read();
			}catch(Exception e){
			}
			
			if(info=='\n'||info=='\r'){
				bufNum = new String(buff,0,pos);
				try{
					n=Integer.parseInt(bufNum);
				}catch(Exception e){
						n=1;
				}
				break;
			}else{
				buff[pos++]=(byte)info;
			}
		}
		return n;
	}
}


 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值