zoukankan      html  css  js  c++  java
  • P1-2017级算法第一次上机 A 水水的斐波那契数列

    题目描述

    相信大家都学过斐波那契数列,虽然很简单,但是斐波那契数列却是很重要的哦,那么让我们来复习一下斐波那契数列吧!

    输入

    多组数据输入

    每行一个整数n (0<n<=30)

    输出

    对于每组数据,输出一行,为斐波那契数列第n 项的值

    输入样例

    1

    2

    3

    4

    输出样例

    1

    1

    2

    3

    思路

    用一个一维数组f(n)来表示斐波那契数列第n项的值。

    则根据定义,后一项等于前两项之和,很容易得到:f(n) = f(n-1) + f(n-2)。

    有两种做法,递归和循环。

    虽然很多人都说递归好理解,但是作为一个递归是同学教的、基础完全没打扎实的人来说,能用循环就不会用递归。

    直接上代码吧,没啥好说的。

     1 //循环  
     2 #include<stdio.h>  
     3 int main()  
     4 {  
     5     int n;  
     6     int f[31];  
     7     int i;  
     8     f[1] = 1;f[2] = 1;  
     9     for(i = 3;i <= 30;i++){  
    10         f[i] = f[i-1] + f[i-2];  
    11     }  
    12     while(scanf("%d",&n) != EOF){  
    13         printf("%d
    ",f[n]);  
    14     }  
    15 }  
     1 //递归  
     2 #include<stdio.h>  
     3 int main()  
     4 {  
     5     int n;  
     6     while(scanf("%d",&n) != EOF){  
     7         printf("%d
    ",feibonacci(n));  
     8     }  
     9 }  
    10     
    11 int feibonacci(int n)  
    12 {  
    13     if(n == 1 || n == 2)  
    14         return 1;  
    15     else  
    16         return feibonacci(n-1) + feibonacci(n-2);  
    17 }  
  • 相关阅读:
    Array数组的使用
    map集合中取出分类优先级最高的类别名称
    关键字static介绍
    构造方法
    封装和private,this,super关键字的简单应用
    hitTest:withEvent:方法流程
    Events and Responder Chain
    block没那么难(一):block的实现
    [译] Block 小测验
    OAuth流程
  • 原文地址:https://www.cnblogs.com/zjsyzmx0527/p/10161119.html
Copyright © 2011-2022 走看看