斐波那契数列:2.数组

Posted yesiming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了斐波那契数列:2.数组相关的知识,希望对你有一定的参考价值。

斐波那契数列:2.数组

#include <stdio.h>
int fib(int m)

  int i;
  int a[100]=0,1,1;
  for(i=2;i<=m;i++)
  
    a[i]=a[i-1]+a[i-2];
  
  return a[m];

int main()

  int n;
  scanf("%d",&n);
  printf("%d",fib(n));
  return 0;

斐波那契数列

解题思路

如果用递归会超时,所以改用数组存,或者直接输出,代码如下

 

题目描述

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项

代码实现

 1 import java.util.Scanner;
 2 public class Solution {
 3     public int Fibonacci(int n) {
 4         int first = 0;
 5         int last = 1;
 6         int temp = 0;
 7         if(n == 0)
 8             return first;
 9         if(n == 1)
10             return last;
11         for(int i = 2; i <= n; i++){
12             temp=first+last;
13             first = last;
14             last = temp;
15         }
16         return last;
17     }
18     
19     public static void main(String[] args){
20         Scanner scanner = new Scanner(System.in);
21         Solution solution = new Solution();
22         int x = scanner.nextInt();
23         System.out.println(solution.Fibonacci(x));
24     }
25 }

 

用数组实现

 1 public class Solution {
 2     /*
 3      * @param n: an integer
 4      * @return: an ineger f(n)
 5      */
 6         int[] a = new int[50];
 7     public int fibonacci(int n) {
 8         
 9         if(n<=2)
10         return n-1;
11         if(a[n]!=0)
12         return a[n];
13         else
14         return a[n]=fibonacci(n-1)+fibonacci(n-2);
15     }
16 }

 

以上是关于斐波那契数列:2.数组的主要内容,如果未能解决你的问题,请参考以下文章

c语言数组编程,斐波那契数列的第1,2项均为1,其后各项为前两项之和,输出前10项,每5项换一行

数组:斐波那契数列

斐波那契数列,冒泡排序,选择排序,数组去重

C语言 用调用函数和数组求斐波那契数列的前10项。 f[i]=F(f,i); 能这样用吗

斐波那契数列数组去重数组合并旋转数组数组与某一值相加

利用数组计算斐波那契数列