ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-04-09 13:01:33  阅读:224  来源: 互联网

标签:a1 java int System 兔子 斐波 a3 a2 那契


题目展示:古典问题:有一对兔子,从出生后第 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新人的运用目前所学知识进行的程序设计,如果有更简易的方法或是其他知识点,欢迎友好交流!

标签:a1,java,int,System,兔子,斐波,a3,a2,那契
来源: https://blog.csdn.net/weixin_52826435/article/details/115497870

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有