使用2D数组的第N个斐波那契数

PrzemysławKwieciński

我该怎么做?我需要使用一个next()方法创建一个Fibonacci类,该类返回下一个Fibonacci字符串值。后续呼叫应返回:0、1、1、2、3、5、8等。

该程序从用户那里获取一个整数,并返回指定数量的字符串值。应使用数组进行计算。

public class Fibonacci {
    final long[][] A = {{1, 1}, {1, 0}};

    public static void  main(String[] args) {
        System.out.print("Enter the n th word of the sequence: ");
        long n = initialStatement(readValue());

        Fibonacci f = new Fibonacci();
        for (int i = 0; i < n; i++) {
            long[][] b = f.next();
            System.out.print(b[0][1]);
        }

    }


    public static long readValue() {
        Scanner scanner = new Scanner(System.in);
        return scanner.nextLong();

    }

    public static long initialStatement(long n) {
        do {
            if (n == 0 || n == 1) {
                return n;
            } else if (n < 0) {
                System.out.print("Wrong value, please enter correct value: ");
                n = Fibonacci.readValue();
            }
        } while (n < 0);
        return n;
    }

    public long[][] next() {

        long[][] a =new long[2][2];


        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 2; j++) {
                    a[i][j] += a[i][j] * A[j][i];
            }
        }
        return a ;
    }
}
莫莫

您的矩阵令人困惑。

这是使用两个int而不是matrix的代码的简单更改。

测试一下,让我知道。

public class Fibonacci {
    long i = -1; // clone of the loop counter i
    long fibo1 = 1;
    long fibo2 = 1;

    public  void  main(String[] args) {
        System.out.print("Enter the n th word of the sequence: ");
        long n = initialStatement(readValue());

        Fibonacci f = new Fibonacci();
        for (int i = 0; i < n; i++) {
            System.out.print(f.next());
        }

    }


    public static long readValue() {
        Scanner scanner = new Scanner(System.in);
        return scanner.nextLong();

    }

    public static long initialStatement(long n) {
        do {
            if (n == 0 || n == 1) {
                return 1; // fibo(0) == fibo(1) == 1
            } else if (n < 0) {
                System.out.print("Wrong value, please enter correct value: ");
                n = Fibonacci.readValue();
            }
        } while (n < 0);
        return n;
    }

    public String next() {
        i++; // simulation of loop i because it is not a param of next()
        if(i >= 2) {
            long aux = fibo1 + fibo2;
            fibo1 = fibo2;
            fibo2 = aux;
        }
        return ""+ fibo2;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用动态规划获得第n个斐波那契数

来自分类Dev

使用动态规划获得第n个斐波那契数

来自分类Dev

使用递归程序的 NASM 中的第 n 个斐波那契数 - [组装]

来自分类Dev

如何使用复杂度为 O(n) 的 Javascript 找到第 n 个斐波那契数

来自分类Dev

n的第N个斐波那契数等于10 ^ 19?

来自分类Dev

使用C中的黄金比率计算第n个斐波那契数模m

来自分类Dev

斐波那契数-动态数组

来自分类Dev

2 个斐波那契数的乘积

来自分类Dev

使用指针返回一个包含前 n 个斐波那契数列的数组

来自分类Dev

如何创建一个斐波那契数最大为整数n的数组?

来自分类Dev

在O(logn)时间和空间复杂度中找到第N个斐波那契数?

来自分类Dev

我想使用大整数值确定序列中的第n个斐波那契项

来自分类Dev

打印斐波那契数列直到第n位?

来自分类Dev

找到斐波那契的第n个术语我一直出错

来自分类Dev

如何估计第n个元素的斐波那契递归算法的时间?

来自分类Dev

获取 G 系列的第 n 个值(一般斐波那契数列)

来自分类Dev

使用 python 获取斐波那契数列的第 n 个字符

来自分类Dev

确定两个斐波那契数的邻接

来自分类Dev

不使用数组的斐波那契数列

来自分类Dev

使用重复循环的斐波那契数

来自分类Dev

使用修复计算斐波那契数

来自分类Dev

使用scanl Haskell的斐波那契数的大0

来自分类Dev

使用斐波那契递归打印1到n

来自分类Dev

使用无限流生成前10个斐波那契数

来自分类Dev

使用无限流生成前10个斐波那契数

来自分类Dev

使用 R 打印前 20 个斐波那契数

来自分类Dev

计算斐波那契数

来自分类Dev

真正的斐波那契数的索引

来自分类Dev

斐波那契数为负

Related 相关文章

热门标签

归档