java经典五十题第1题:斐波那契数列

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

一、第一种情况:只算十二个月。

/*题目分析:斐波那契数列具体为:1,1,2,3,5,8,13,...。
显而易见,从第三个月开始,当月的兔子总数为邻近的前两个月之和;
*/
public class java1{
    public static void main (String[] args){
    //不要忘记main方法
    int a1=1;
    int a2=2;
    System.out.println("1月的兔子总数为:"+a1);
    System.out.println("2月的兔子总数为:"+a2);
    //题目要求输出每个月(共十二个月)的兔子总数,此处为一月二月的情况
    for(int i=3;i<=12;i++){
    //记得给i定义一个数据类型
    int a3=a1+a2;
    a1=a2;
    a2=a3;
    System.out.println(i+"月的兔子总数为:"+a3);
    }
    //利用for循环输出从三月份到十二月的每个月的兔子总数
    }
}

下面进行程序在eclipse中的书写以及结果展示:

程序在eclipse中的展示

结果显示
二、由用户输入查看某月份(可大于十二)时兔子总数

import java.util.*;
//调用java.util.*以用于用户数据输入
public class java1{
    public static void main(String[] args){
     System.out.println("请输入月份");
    Scanner z=new Scanner(System.in);
    //定义z作为用户输入的参数
    int a=z.nextInt();
    //把用户输入的数字赋给a
    int a1=1;
    int a2=1;
    if(a<=0)
        System.out.println("月份需大于零。");
    if(a==1)
        System.out.println("1月份兔子总数为:"+a1);
    if(a==2)
        System.out.println("2月份兔子总数为:"+a2);
    if(a>=3){
        for(int i=3;i<=a;i++){
        int a3=a1+a2;
        a1=a2;
        a2=a3;
        System.out.println(a+"月份兔子总数为:"+a3);
        }
    }
    }
}
/*此处存在一个问题,在输出大于等于3的月份n兔子总数时,会出现n-2次输出
结果暂时没有想到解决方案,等解决了在来*/
/*此处犯了一个错误,同时也是忘记了一个知识点,for循环里定义的变量只能
在for循环中使用,于是此处只需要把变量a3定义在for循环之外,再将输出语
句也书写在for循环外即可*/
import java.util.*;
//调用java.util.*以用于用户数据输入
public class java1{
    public static void main(String[] args){
     System.out.println("请输入月份");
    Scanner z=new Scanner(System.in);
    //定义z作为用户输入的参数
    int a=z.nextInt();
    //把用户输入的数字赋给a
    int a1=1;
    int a2=1;
    int a3=3;
    if(a<=0)
        System.out.println("月份需大于零。");
    if(a==1)
        System.out.println("1月份兔子总数为:"+a1);
    if(a==2)
        System.out.println("2月份兔子总数为:"+a2);
    if(a>=3){
        for(int i=3;i<=a;i++){
        a3=a1+a2;
        a1=a2;
        a2=a3;
        }
        System.out.println(a+"月份兔子总数为:"+a3);
    }
    }
}

程序试运行成功,结果也正确,读者可以自己检验。
此处是java新人的运用目前所学知识进行的程序设计,如果有更简易的方法或是其他知识点,欢迎友好交流!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值