[剣指Offer]1.階段を跳ぶ


タイトルの説明:
1匹のカエルは一度に1段の階段を飛び上がることも、2段を飛び上がることもできます.このカエルが1つのn級の階段を跳ぶことを求めて全部で何種類の跳び方があります.
入力:
入力には、各テストケースについて、複数のテストケースが含まれる場合があります.
入力は整数n(1<=n<=70)を含む.
出力:
各テストケースに対応し、
出力カエルがn段の階段を飛び上がるのに何種類の飛び方があるのか.
サンプル入力:
5

サンプル出力:
8
/*********************************
*    :2013-11-15
*    :SJF0115
*    :  1388: 
*    :http://ac.jobdu.com/problem.php?pid=1388
*    :AC
*    : Offer
*    :
**********************************/
#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
//F(n) = F(n-1) + F(n-2)
long long  Fibonacci(int n){
    int i;
    long long fibonacciA = 1;
    long long fibonacciB = 2;
    long long fibonacciC;
    if(n == 1){
        return fibonacciA;
    }
    else if(n == 2){
        return fibonacciB;
    }
    for(i = 3;i <= n;i++){
        fibonacciC = fibonacciA + fibonacciB;
        fibonacciA = fibonacciB;
        fibonacciB = fibonacciC;
    }
    return fibonacciC;
}

int main()
{
	int i,n;
	while(scanf("%d",&n) != EOF){
        printf("%lld
",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;
	Fibonacci[2] = 2;
	while(scanf("%d",&n) != EOF){
	    for(int i = 3;i <= n;i++){
	        Fibonacci[i] = Fibonacci[i-1] + Fibonacci[i-2];
	    }
	    printf("%.0lf
",Fibonacci[n]); } return 0; }

コード3
/*---------------------------------------
*    :2015-07-19
*    :SJF0115
*    : 1. 
*    :http://www.nowcoder.com/books/coding-interviews/8c82a5b80378478f9484d87d1c5f12a4?rp=1
*    :AC
*    : Offer
*    :
-----------------------------------------*/
#include <iostream>
using namespace std;

class Solution {
public:
    int jumpFloor(int number) {
        if(number == 1){
            return 1;
        }//if
        else if(number == 2){
            return 2;
        }//else
        return jumpFloor(number - 1) + jumpFloor(number - 2);
    }
};

int main(){
    Solution s;
    int number = 3;
    cout<<s.jumpFloor(number)<<endl;
    return 0;
}