斐波拉切

第一种方法:

public class Fibonacci2{

 //定义数组方法
 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"); }}}

第二种方法:

public class Fibonacci1{

 //定义三个变量方法
 public static void main(String[] args) {
  int a=1, b=1, c=0;
  System.out.println("斐波那契数列前20项为:");
  System.out.print(a + "\t" + b + "\t");
  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();  }}}

第三种方法:

public class Fibonacci3 {

 //使用递归方法
 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();}}}

时间: 2024-10-13 01:04:39

斐波拉切的相关文章

hdu 2516(斐波拉切博弈)

题意:容易理解. 分析:通过枚举寻找规律,这就是做1堆或者2堆石子博弈的技巧!当为2或者3时,肯定是第二个人赢,当为4时,先去一个石子,然后当对方面临3,于是第一个人赢, 当为5时,取1时,第二个人赢,取2时也是第二个人赢...,于是为5时也是滴二个人赢...多枚举几个之后就会发现只要满足斐波拉切数列的都是第二个人赢,其它的 则是第一个人赢! 代码实现: #include<stdio.h> #include<string.h> int main() { int n,i,t1,t2,

js中斐波拉切数的三种写法;

js中斐波拉切数的三种写法: function factorial(num){ if(num <=1){ return 1; }else{ return num* factorial(num-1); } } console.log(factorial(5));//120 面这个函数的执行与函数名紧紧耦合在了一起,可以使用arguments.callee可以消除函数解耦 第二种(在严格模式下,访问这个属性会抛出TypeError错误) function factorial(num){ if(num

斐波拉切字符串统计个数 Fibonacci String

Problem:  s0 = "a", s1 = "b", s2 = "ba", s3 = "bab", s4 = "babba", s4 = "babbabab", is called Fibonacci string. For the string with index n, given a string str = "bb", calculate how man

Python——从连续赋值到斐波拉切数列

Python中有一个非常简洁的赋值语句用法,就是连续赋值. 要分别给两个变量赋值,我的第一念头是如下: 1 a = 1 2 b = 2 但其实python还提供了一种更简洁的写法如下 1 a , b = 1 , 2 这时我们很自然的就能理解为按顺序赋值,a = 首位数字1,b = 次位数字2.但实际上并不仅仅如此. 连续赋值语句中等式右边其实都是局部变量,而不是真正的变量值本身.当等号右边是定值时,这样做当然没有问题.但是如果右边是一个含有变量的表达式,那么赋值时会采用截至本句代码前一句为止,各

Fibonacci斐波拉契数列----------动态规划DP

n==10 20 30 40 50 46 体验一下,感受一下,运行时间 #include <stdio.h>int fib(int n){ if (n<=1)     return 1; else            return fib(n-1)+fib(n-2); }int main( ){ int n; scanf("%d",&n); printf("%d\n" ,fib(n) );} 先 n==10 20 30 40 50 46

青蛙跳台阶问题-斐波拉契数列

题目1:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级.求总共有多少种跳法 首先我们考虑最简单的情况,加入只有1级台阶,那显然只有一种跳法,如果有2级台阶,那就有两种跳的方法了:一种是分两次跳,每次跳1级:另外一种就是一次跳2级 现在我们来讨论一般情况.我们把n级台阶时的跳法看成是n的函数,记为f(n).当n>2时,第一次跳的时候就有两种不同的选择:一是第一次只跳1级,此时跳法数目等于后面剩下的n-1级台阶的跳法数目,即为f(n-1):另外一种选择是第一次跳2级,此时跳法数目等于后面剩下的

浅谈C#中的斐波拉契数列

突然对那些有趣的数学类知识感兴趣了,然后就简单研究了一下斐波拉契数列,看看它的有趣之处! 斐波拉契数列(Fibonacci Sequence),又称黄金分割数列,该数列由意大利的数学家列奥纳多·斐波那契发现的.这种数列指的是这样一个数列:0.1.1.2.3.5.8.13.21. 34.--在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*). 用C#实现斐波拉契数列的代码: Console.Write("请输入一个长

在c#中编写斐波拉契数列程序

思路:首先因为输出的是一个数列,又因为不定长,所以要见一个集合来装数列,其次确定第一个数和第二个数都为1,然后根据斐波拉契数列的特点,确定是一个循环语句,再根据从第三位开始,每个数字都是前两个数的和的特点写出代码.代码如下: while(true){Console.Write("请输入斐波拉契数列的长度:");int len = int.Parse(Console.ReadLine());int[] array = new int[len];if (len < 3){Consol

斐波拉契数列的计算方法

面试题9.斐波拉契数列 题目: 输入整数n,求斐波拉契数列第n个数. 思路: 一.递归式算法: 利用f(n) = f(n-1) + f(n-2)的特性来进行递归,代码如下: 代码: long long Fib(unsigned int n) { if(n<=0) return 0; if(n==1) return 1; return Fib(n-1) + Fib(n-2); } 缺陷: 当n比较大时递归非常慢,因为递归过程中存在很多重复计算. 二.改进思路: 应该采用非递归算法,保存之前的计算结