Fibonacci数

Fibonacci数

描述

无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为
F(n)=1 ...........(n=1或n=2)
F(n)=F(n-1)+F(n-2).....(n>2)
现要你来求第n个斐波纳奇数。(第1个、第二个都为1)

输入
第一行是一个整数m(m<5)表示共有m组测试数据
每次测试数据只有一行,且只有一个整形数n(n<20)
输出
对每组输入n,输出第n个Fibonacci数
实现:

package July;

import java.util.Scanner;

public class fiobolaco {

private static  int num[]=new int[1000];
    public static void main(String[] args) {
      Scanner sc=new Scanner(System.in);
      //System.out.println("请输入斐波拉切数列的m组测试数据:"+m);
      int m=sc.nextInt();//获取m组测试数据
      int data[]=new int[m];
      for(int i=0;i<m;i++){
          data[i]=sc.nextInt();
      }
      System.out.println("斐波拉切数列为:");
      generate(num);
      System.out.println();
      //找到指定位置在数列中的数值
      for(int i=0;i<data.length;i++){
      find(data[i]);
      }
    }
    public static void  generate(int[] num){
        for(int i=1;i<=30;i++){
            if(i==1||i==2){
                num[i]=1;
            }else{
                  num[i]=num[i-1]+num[i-2];
            }
            System.out.print(num[i]+"  ");
        }
    }
    public static void find(int n){
        for(int i=1;i<num.length;i++){
            if(i==n){
                System.out.println("第"+n+"位在斐波拉切数列中的数位:"+num[i]);

            }
        }
    }

}

运行结果:

时间: 2024-08-06 07:55:34

Fibonacci数的相关文章

利用JavaScript打印出Fibonacci数(不使用全局变量)

从汤姆大叔的博客里看到了6个基础题目:本篇是第4题 - 利用JavaScript打印出Fibonacci数(不使用全局变量) 解题关键: 1.Fibonacci数列的规律 2.递归 解点1:Fibonacci数列的规律 1,1,2,3,5,6,13,19,32.... //从第3项开始,每项都是前两项之和 解点2:递归 递归是一个复杂的概念,此题可以不用递归解决,但题目要求不能使用全局变量,所以我只能想到递归方法.简单的说,递归就是函数调用函数本身,但递归一定要有一个出口,否则就无限调用下去……

1143 多少个Fibonacci数

时间限制:500MS  内存限制:65536K提交次数:270 通过次数:16 题型: 编程题   语言: C++;C Description 给你如下Fibonacci 数的定义: F1 = 1 F2 = 2 Fn = Fn-1 + Fn-2 (n >= 3) 给你两个数a与b,现要求你计算在a与b之间(包括a.b)有多少个Fibonacci 数 输入格式 有多行,每行有两个数a.b,使用空格分隔,a <= b <= 10^100(即最大10的100次方) 最后一行为两个0 输出格式

每日一小练——快速Fibonacci数算法

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:快速Fibonacci数算法 内容:先说说Fibonacci数列,它的定义是数列:f1,f2....fn有如下规律: 尝试寻找快速的求出fn的方法 我的解法:上来没多想,打开vs2013就敲了起来,问题果然很简单,分分钟就超神..奥,不对就解决了! 其实题目中就给出了这个算法的递归形式,所以首先我想到的是递归解法,不过因为求解快速方法在递归之前,我编写了一个非递归的算法 #include <iostream> usi

hdu 2041(递推、dp/组合数学```其实就是Fibonacci数```)

最经典的Fibonacci数,上楼梯每次能跨一步或者两步,问有多少中跨法: 对于最后一次跨一步或者两步,走到第 i 阶,其种类总数就是走到 i - 1 的总数 + 走到i - 2 的总数:于是 a [ i ] = a [ i - 1 ] + a [ i - 2 ]:当然,那个时候的我是用```组合数学做的``` 1 #include<stdio.h> 2 long long c(int a,int b) 3 { 4 long long i,sum=1,j; 5 for (i=a,j=1;i&g

求Fibonacci数的三种方法和时间复杂度解析

题目: 定义Fibonacci数列如下: f(0)=1 f(1)=1 f(n)=f(n-1)+f(n-2), n>=2 输入n,用最快的方法求该数列的第n项. 解答一: 直接用公式写递归函数.很简单,很低效,就不写了.时间复杂度T(N) = T(N-1) + T(N-2); 也是f(n)本身,2^(n/2)<f(n)<2^n. 解答二: 用循环求,也很直接,效率很高了,时间复杂度是O(n). int f(int n) { if(n <= 1) return 1; int f0=1,

Fibonacci数列是这样定义的: F[0] = 0 F[1] = 1 for each i ≥ 2: F[i] = F[i-1] + F[i-2] 因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1

Fibonacci数列是这样定义的:F[0] = 0F[1] = 1for each i ≥ 2: F[i] = F[i-1] + F[i-2]因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibonacci数列中的数我们称为Fibonacci数.给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数. 输入描述: 输入为一个正整数N(1 ≤ N

每日一小练——高速Fibonacci数算法

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:高速Fibonacci数算法 内容:先说说Fibonacci数列,它的定义是数列:f1,f2....fn有例如以下规律: 尝试寻找高速的求出fn的方法 我的解法:上来没多想,打开vs2013就敲了起来,问题果然非常easy,分分钟就超神..奥,不正确就攻克了! 事实上题目中就给出了这个算法的递归形式,所以首先我想到的是递归解法,只是由于求解高速方法在递归之前,我编写了一个非递归的算法 #include <iostrea

nyist 13 Fibonacci数

Fibonacci数 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述 无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为F(n)=1 ...........(n=1或n=2)F(n)=F(n-1)+F(n-2).....(n>2)现要你来求第n个斐波纳奇数.(第1个.第二个都为1) 输入 第一行是一个整数m(m<5)表示共有m组测试数据每次测试数据只有一行,且只有一个整形数n(n<20) 输出 对每组输

ACM Fibonacci数 计算

Fibonacci数 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述 无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为F(n)=1 ...........(n=1或n=2)F(n)=F(n-1)+F(n-2).....(n>2)现要你来求第n个斐波纳奇数.(第1个.第二个都为1) 输入 第一行是一个整数m(m<5)表示共有m组测试数据每次测试数据只有一行,且只有一个整形数n(n<20) 输出 对每组输