当前位置:编程学习 > C/C++ >>

剑指Offer之斐波那契数列

题目描述:
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。斐波那契数列的定义如下:
 
输入:
输入可能包含多个测试样例,对于每个测试案例,
输入包括一个整数n(1<=n<=70)。
输出:
对应每个测试案例,
输出第n项斐波那契数列的值。
样例输入:
3
样例输出:
2
 
 
/********************************* 
*   日期:2013-11-15 
*   作者:SJF0115 
*   题号: 题目1387:斐波那契数列 
*   来源:http://ac.jobdu.com/problem.php?pid=1387 
*   结果:AC 
*   来源:剑指Offer 
*   总结: 
**********************************/  
#include<iostream>  
#include<stdio.h>  
#include<string>  
using namespace std;  
//斐波那契数列F(n)  
long long  Fibonacci(int n){  
    int i;  
    long long fibonacciA = 0;  
    long long fibonacciB = 1;  
    long long fibonacciC;  
    if(n == 0){  
        return fibonacciA;  
    }  
    else if(n == 1){  
        return fibonacciB;  
    }  
    for(i = 2;i <= n;i++){  
        fibonacciC = fibonacciA + fibonacciB;  
        fibonacciA = fibonacciB;  
        fibonacciB = fibonacciC;  
    }  
    return fibonacciC;  
}  
  
int main()  
{  
    int i,n;  
    while(scanf("%d",&n) != EOF){  
        printf("%lld\n",Fibonacci(n));  
    }  
    return 0;  
}  

 

 
 
 
 
#include <stdio.h>  
#include <math.h>  
  
int main()  
{  
    int n,i,j;  
    double Fibonacci[71];  
    Fibonacci[0] = 0;  
    Fibonacci[1] = 1;  
    while(scanf("%d",&n) != EOF){  
        for(int i = 2;i <= n;i++){  
            Fibonacci[i] = Fibonacci[i-1] + Fibonacci[i-2];  
        }  
        printf("%.0lf\n",Fibonacci[n]);  
    }  
    return 0;  
}  

 

 
补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,