java使用for循环写一个小程序

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

可以参考这篇文章。 http://www.knowsky.com/889215.html

 int age1 = 1;
 int age2 = 0;
 int age3 = 0;

 for(int i=0;i<month;i++){
   int tmp = age3;
     age3 = age2+age3;
     age2 = age1;
     age1 = tmp;
     System.out.println((age1+age2+age3)*2);
 }

 public void getResult(int month){
        int a=1; //第一个月的对数
        int b=1; //第二个月的对数
        int sum=0; //month个月后的对数
        if(month<3){
            return;
        }
        for(int i=2;i<=month;i++){
            sum=a+b;
            a=b;
            b=sum;
        }
        System.out.println(month+"个月后,总共有"+sum+"对兔子!");
    }

public class xiaotu{
public static void main(String args[]){
System.out.println("请选择功能,功能1:计算各个月的兔子数。功能2:计算到多少月的兔子数。请输入数字选择你要的功能:");
Scanner scan=new Scanner(System.in);
int b=scan.nextInt();
switch(b){
case 1:
int x;
long arr[]=new long[36];
arr[1]=arr[0]=1;
System.out.println("第1个月有1对兔子");
System.out.println("第2个月有1对兔子");
for(x=2;x<=36;x++){
arr[x]=arr[x-2]+arr[x-1];
System.out.println("第"+(x+1)+"个月有"+arr[x]+"只兔子");
}break;
case 2:

    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]); 
    }
    }
}
望采纳
public class xiaotu{
public static void main(String args[]){
    System.out.println("请选择功能,功能1:计算各个月的兔子数。功能2:计算到多少月的兔子数。请输入数字选择你要的功能:");
    Scanner scan=new Scanner(System.in);
    int b=scan.nextInt();
    switch(b){
    case 1:
    int x;
    long arr[]=new long[36];
    arr[1]=arr[0]=1;
    System.out.println("第1个月有1对兔子"); 
    System.out.println("第2个月有1对兔子");
    for(x=2;x<=36;x++){
        arr[x]=arr[x-2]+arr[x-1];
        System.out.println("第"+(x+1)+"个月有"+arr[x]+"只兔子");
    }break;
    case 2:


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

斐波那契数列问题,基本思路是把上一次的结果作为下一次的计算输入因数即可。

兔子问题
public class Domain {

private static ArrayList<Tuzi> tuzis;

public static main(String[] args) {

    tuzis = new ArrayList<Tuzi>();

    Tuzi t1 = new Tuzi("t1",0);
    Tuzi t2 = new Tuzi("t2",0);
    tuzis.add(t1);
    tuzis.add(t2);

    for(int i = 1;i<12;i++){

        // 给每个兔子增添年龄
        addOneForEvery();
        // 通过判断是否增加兔子个数
        judgeAddOneTuzi();

        System.out.println("第"+i+"个月总共有"+tuzis.size()/2+"对兔子");
    }
}

public static addOneForEvery(){

    for (int i = 0;i < tuzis.size();i++) {

        tuzis.get(i).age += 1;
    }
}

public static judgeAddOneTuzi(){

    for (int i = 0;i < tuzis.size();i++) {

        int a = tuzis.get(i).age ;
        if (a > 3) {    // 一对兔子生一对,在数量上相当于一只生一只

            Tuzi t = new Tuzi("t",0);
            tuzis.add(t);
        }
    }
}

}

class Tuzi {

private String name;    // 姓名
private int age;        // 年龄

public Tuzi(){

}

public Tuzi(String name,int age) {

    this.name = name;
    this.age = age;
}

public void setName(String name) {

    this.name = name;
}

public String getName(){

    return this.name;
}

public void setAge(int age) {

    this.age = age;
}

public int getAge(){

    return this.age;
}

}

public class ForTest {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    getResult(1);
}
public static void getResult(int month){
    int a=1; //第一个月的对数
    int b=1; //第二个月的对数
    int sum=1; //month个月后的对数
    if(month<3){
       sum=1;
    }else{
        for(int i=3;i<=month;i++){
            if(i%2!=0){
                sum=2*b;
                a=sum;
                b=a;
            }
        }
    }
    System.out.println(month+"个月后,总共有"+sum+"对兔子!");
}

}