(七)剣指offerのFibonacci数列とその変形


1、タイトル説明:
フィボナッチ数列はよく知られていますが、整数nを入力するように要求されています.フィボナッチ数列のn番目の項目を出力してください.n<=39
class Solution {
public:
    int Fibonacci(int n) {
        if(n == 0)
            return 0;
        if(n == 1)
            return 1;
        int i;
        long long temp1 = 1;
        long long temp2 = 0;
        long long temp = 0;
        for (i=2;i<= n;i++){
            temp = temp1+temp2;
            temp2 = temp1;
            temp1 = temp;
        }
  return temp;
    }
};

2、タイトルの説明:
1匹のカエルは一度に1段の階段を飛び上がることも、2段を飛び上がることもできます.このカエルが1つのn級の階段を跳ぶことを求めて全部で何種類の跳び方があります.
class Solution {
public:
    int jumpFloor(int number) {
        if(number==1)
            return 1;
        if(number==2)
            return 2;
        long long temp2 = 1;
        long long temp1 = 2;
        long long temp =0;
        for(int i=3;i<=number;i++){
            temp = temp1+temp2;
            temp2 = temp1;
            temp1 = temp;
        }
        return temp;
    }
};

3、テーマの説明:
1匹のカエルは一度に1段の階段を飛び上がることもできるし、2段も飛び上がることもできるし...n段も飛び上がることもできる.このカエルが1つのn級の階段を跳ぶことを求めて全部で何種類の跳び方があります.
class Solution {
public:
    int jumpFloorII(int number) {
        int result = 1;
        for(int i=1;i2;
  return result;
    }
};

4、タイトルの説明:
2*1の小さな矩形で横になったり、縦になったりして、より大きな矩形を覆うことができます.すみません、n個の2*1の小さい矩形で重ならずに1個の2*nの大きい矩形を覆って、全部で何種類の方法がありますか?
class Solution {
public:
    int rectCover(int number) {
        if(number < 2)
            return 1;
        if(number == 2)
            return 2;
        long long temp2=1;
        long long temp1=2;
        long long temp=0;
        for(int i=3;i<=number;i++){
            temp = temp1 + temp2;
            temp2 = temp1;
            temp1 = temp;
        }
        return temp;
    }
};
​

アドバイスやその他の質問があれば、いつでもメッセージをください.または、次のリンクに移動します.
https://github.com/gaobaoru/code_day
Star/Fork/Poshコードは、オープンソース倉庫に貢献する必要があります.
CodingテーマのウェブサイトとコレクションAcceptedコードの倉庫を見て、codingを行います!!!