zoukankan      html  css  js  c++  java
  • 非递归和递归分别实现求第n个斐波那契数。

    菲波那切数列为:0 1 1 2 3 5 8 13 21 34...

    规律:从第三个数字起后面的每一个数字都是前两个数字的和。

    非递归算法:

     1 #include<stdio.h>
     2 int main()
     3 {
     4           //数列:0 1 1 2 3 5 8 13 21 34
     5     //序号:1 2 3 4 5 6 7 8  9  10
     6     int a = 0;
     7     int b = 1;
     8     int c = a + b;
     9     int num = 0;//num为所求的第几项数列。
    10     scanf("%d", &num);
    11     if (num > 1)
    12     {
    13         for (int i = 0;i < num - 3;i++) {
    14             a = b;
    15             b = c;
    16             c = a + b;
    17         }
    18         printf("%d", c);
    19 
    20     }
    21     else
    22     {
    23         printf("%d",a);
    24     }
    25    
    26         renturn 0;  
    27 }


    递归算法:

     1 #include<stdio.h>
     2 //0 1 1 2 3 5 8 13 21 34
     3 //1 2 3 4 5 6 7  8  9 10
     4 int Num(int n)
     5 {
     6     if (n == 1)
     7     {
     8         return 0;
     9     }
    10     if (n == 2)
    11     {
    12         return 1;
    13     }
    14     else
    15     {
    16         return Num(n - 1) + Num(n - 2);
    17     }
    18 }
    19 
    20 int main()
    21 {
    22     int n;
    23     scanf("%d",&n);//输入想要求得的第几个斐波那契数列
    24     int num = Num(n);
    25     printf("%d",num);
    26 
    27     return 0;
    28 }
  • 相关阅读:
    Missing Ranges
    springboot整合quartz
    Quartz01
    springboot整合jap
    springboot集成redis
    springboot整合drui、mybatis、pagehelper
    springboot模板
    SpringBoot入门
    Java注解简介
    Git02(ssh key的配置和使用、idea配置并使用Git)
  • 原文地址:https://www.cnblogs.com/cuckoo-/p/10317627.html
Copyright © 2011-2022 走看看