斐波那契java

java语言解决斐波那契数列问题

public

class

zuoye{

public

static

void

main(String[]

args){

int

num1=1,num2=1;//设定前两位数初始值

int

num=0;

//把变量mun赋值为0是什么意思?在后面有什么用?

答:

num赋值初始化为0,

不然为null.

System.out.println(num1+”\\t”+num2+”\\t”+(num1+num2));

//显示输出数列的前三位

这个上面的打印的结果和后面循环的结果应该是分开的,也就是前面打印

1

1

2

然后换行,然后再通过循环打印10个数字.

接下来我们看循环部分.

斐波那契数列公式是

F1=1

(n=1)

F2=1

(n=2)

Fn=F(n-1)+F(n-2)

(n=3)

所以,

for(int

i=1;i=10;i++){

//for循环

int

num3=num+num2;

//num+num2

??num加num2干什么?

答:num是个中间变量,

用来传值,

赋给num的值永远是F(n-1)

num2=num;

//为什么又把num赋值给num2?

答:

赋给num2的值永远是F(n-2).

这里因为num的值在上一个循环里为F(n-1),到下一个循环应该是F(n-2).所以赋给num2.

num=num3;

//

num3再赋给num?

答:

因为赋给num的值永远是F(n-1),

这里因为num3的值到下一个循环应该就是F(n-1).所以赋给num.

System.out.print(“\\t”+num3);

if(i%5==0){

//i能被5整除.为什么要设定一个这样的判断条件?

答:

这里是每五个数打印一个换行符.

System.out.println();

//输出空的是什么意思?

答:

这里是打印一个换行符

}

}

}

}

斐波那契java

Java编写程序,求数列:1,1/2,2/3,3/5,5/8,8/13,…的前20项之和(从第3项?

public class Main {

public static void main(String[] args) {

double sum = 0.0;

double a = 1.0;

double b = 1.0;

for (int i = 1; i = 20; i++) {

sum += a / b;

double temp = a + b;

a = b;

b = temp;

}

System.out.println(“前20项之和为:” + sum);

}

}

输出结果为:

前20项之和为:32.66026079864164

注:该数列又称为斐波那契数列的黄金分割数列。

如何用java语言输出斐波那契数列

Java编程:三种方法实现斐波那契数列

其一方法:

public class Demo2 {  

    // 定义三个变量方法  

    public static void main(String[] args) {  

        int a = 1, b = 1, c = 0;  

        System.out.println(“斐波那契数列前20项为:”);  

        System.out.print(a + “\t” + b + “\t”);  

        //因为前面还有两个1、1 所以i=18  

        for (int i = 1; i = 18; i++) {  

            c = a + b;  

            a = b;  

            b = c;  

            System.out.print(c + “\t”);  

            if ((i + 2) % 5 == 0)  

                System.out.println();  

        }  

    }  

  

}

java编程:三种方法实现斐波那契数列

其二方法:

public class Demo3 {  

    // 定义数组方法  

    public static void main(String[] args) {  

        int arr[] = new int[20];  

        arr[0] = arr[1] = 1;  

        for (int i = 2; i  arr.length; i++) {  

            arr[i] = arr[i – 1] + arr[i – 2];  

        }  

        System.out.println(“斐波那契数列的前20项如下所示:”);  

        for (int i = 0; i  arr.length; i++) {  

            if (i % 5 == 0)  

                System.out.println();  

            System.out.print(arr[i] + “\t”);  

        }  

    }  

  

}

Java编程:三种方法实现斐波那契数列

其三方法:

public class Demo4 {  

    // 使用递归方法  

    private static int getFibo(int i) {  

        if (i == 1 || i == 2)  

            return 1;  

        else  

            return getFibo(i – 1) + getFibo(i – 2);  

    }  

  

    public static void main(String[] args) {  

        System.out.println(“斐波那契数列的前20项为:”);  

        for (int j = 1; j = 20; j++) {  

            System.out.print(getFibo(j) + “\t”);  

            if (j % 5 == 0)  

                System.out.println();  

        }  

    }  

  

}

同一道题用各种不同的思路去思考解决,也是对知识综合运用的锻炼。

Java斐波那契数第35个数,流程图加代码?

流程图如下:

public int Fibonacci(int n) {

      int[] res = {0, 1};

      if(n 2) {

          return res[n];

      }

      int first = 0;

      int second = 1;

      int fibn = 0;

      for(int i = 2; i = n; i++) {

          fibn = first + second;

          first = second;

          second = fibn;

      }

      return fibn;

  }

public static void main(String[] args) {

System.out.println(Fibonacci(35));

}

java判断一个数是否斐波那契

斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n=2,n∈N*)。

以下是Java代码实现(递归与递推两种方式):

import java.util.Scanner;

public class Fibonacci {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.println(“Please input this fibonacci n:”);

        int n = scanner.nextInt(); // 假设输入为大于零的整数

        

        System.out.println(fibonacci(6) + “:” + fibonacciNormal(6));

        

        int sum = 0;

        for(int i = 1; i = n; i++){

            sum += fibonacci(i);

        }

        System.out.println(sum);

    }

    

    // 递归实现方式

    public static int fibonacci(int n){

        if(n = 2){

            return 1;

        }else{

            return fibonacci(n-1) + fibonacci(n-2);

        }

    }

    

    // 递推实现方式

    public static int fibonacciNormal(int n){

        if(n = 2){

            return 1;

        }

        int n1 = 1, n2 = 1, sn = 0;

        for(int i = 0; i  n – 2; i ++){

            sn = n1 + n2;

            n1 = n2;

            n2 = sn;

        }

        return sn;

    }

}

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月26日 13:34:24
下一篇 2024年3月26日 13:44:39

相关推荐

  • 深入java虚拟机pdf,深入java虚拟机 中村成洋 pdf

    在linux环境下,java怎么实现从word格式转换为pdf格式 //设置当前使用的打印机,我的Adobe Distiller打印机名字为 Adobe PDF wordCom.setProperty( ActivePrinter , new Variant( Adobe PDF ));//设置printout的参数,将word文档打印为postscript…

    2024年5月23日
    4400
  • java截取指定长度字符串,java截取指定字符串之后的

    java中如何截取字符串中的指定一部分 第一个参数是开始截取的字符位置。(从0开始)第二个参数是结束字符的位置+1。(从0开始)indexof函数的作用是查找该字符串中的某个字的位置,并且返回。 int end);截取s中从begin开始至end结束时的字符串,并将其赋值给s;split讲解:java.lang.string.split split 方法 将…

    2024年5月23日
    4200
  • java绑定一个端口,java使用端口

    java如何多个service共用一个端口 你如果有多个项目的话,你可以把多个项目放到一个tomcat里面,这样端口相同使用项目名称来进行区分项目。你如果非要使用同一个,你也可以配置不同的域名导向不同的项目。就是访问的域名不同转接到的项目不同。 如果需要同时启动多个程序,要么修改tomcat的配置文件中的监听端口。要么修改jar包程序的监听端口。不能在一台服…

    2024年5月23日
    3500
  • java多线程并发编程基础,Java多线程并发执行返回

    电脑培训分享Java并发编程:核心理论 电脑培训发现本系列会从线程间协调的方式(wait、notify、notifyAll)、Synchronized及Volatile的本质入手,详细解释JDK为我们提供的每种并发工具和底层实现机制。 人们开始意识到了继承的众多缺点,开始努力用聚合代替继承。软件工程解决扩展性的重要原则就是抽象描述,直接使用的工具就是接口。接…

    2024年5月23日
    4700
  • 自学java找工作,自学java找工作需要包装简历吗

    自学java学多久可以找到工作 1、自学Java至少需要一年以上的时间才能达到找工作的水平。报班培训四到六个月的时间就可以找到一份不错的工作。 2、自学Java至少需要一年以上的时间才能达到找工作的水平。 3、如果要想找到一份Java相关的工作,需要至少学习5-6个月时间才能就业。Java开发需要掌握一些基础的编程语言知识,比如掌握面向对象的编程思想、基本的…

    2024年5月23日
    4300
  • java左移右移,java 左移

    java位移问题 1、思路:直接用Integer类的bit运算操作。 2、移位操作:左移:向左移位,符号后面的数字是移了多少位,移的位用0补齐,例如2进制数01111111左移一位后变为11111110,移位是字节操作。 3、Java 位运算 Java 位运算[转]一,Java 位运算表示方法: 在Java语言中,二进制数使用补码表示,最高位为符号位,正数的…

    2024年5月23日
    4200
  • java技术规范,java规范性要求

    现在主流的JAVA技术是什么? java最流行开发技术程序员必看 1 、Git Git一直是世界上最受欢迎的Java工具之一,也是Java开发人员最杰出的工具之一。Git是一个开源工具,是-种出色的分布式版本控制解决方案。 (1).Java基础语法、数组、类与对象、继承与多态、异常、范型、集合、流与文件、反射、枚举、自动装箱和注解。(2).Java面向对象编…

    2024年5月23日
    4000
  • javasocket编程,Java socket编程中,禁用nagle算法的参数

    Java进行并发多连接socket编程 1、Java可利用ServerSocket类对外部客户端提供多个socket接口。基本的做法是先创建一个ServerSocket实例,并绑定一个指定的端口,然后在这个实例上调用accept()方法等待客户端的连接请求。 2、Socket socket=server.accept(0;Thread handleThrea…

    2024年5月23日
    4600
  • java死亡,java死代码是什么意思

    我的世界传送回死亡点指令是什么? 1、下面就让我们一起来了解一下吧:我的世界回到死的地方的指令是输入/back,就可以回到死亡地点了,当然也可以看信标,因为死亡后会有一道光集中在死亡点,只要循着光就可以找到目的地了。 2、在服务器中的指令 首先打开指令台,在指令行输入“/back”就可以回到自己的死亡地点了。在单人游戏中的指令 在单人游戏中,您无法直接返回到…

    2024年5月23日
    4800
  • myeclipse能部署java工程么,myeclipse支持jdk18

    myeclipse如何建java文件 1、点击【File】—【New】–【Class】在如下界面,输入Class的名字,如Test,点击【Finish】。Test.java文件创建成功。 2、点击【File】—【New】–【Class】 在如下界面,输入Class的名字,如Test,点击【Finish】。 Te…

    2024年5月23日
    4000

发表回复

登录后才能评论



关注微信