姉妹の愛の文字列を越えて「牛オフの練習試合53A」

より良い読書体験

ポータル

Portal1:Nowcoder

説明

姉妹を超えて本当に彼女が文字だけが好きという、彼女の名前が好き\(\ textrm { "C" } \) と\(\ {textrm "y軸"} \) したがってだけのような姉妹を超え含ま\(\ textrm { "C" } \) と\(\ textrm { "Y" } \) 文字列、および文字列は、2つの連続することはできません\(\ textrm { " C「} \) どのように長さの多く見つけてください(N \)\文字列は、文字列のように姉妹校を超えています。(1E9 + 7 \)\剰余を。

入力

整数を入力\(N-を\)

\(1 \ N 100000 \ \)

出力

出力整数の答え。

サンプル入力

3

サンプル出力

5

サンプル説明

\(\ textrm {CYY、CYC、YYY、YYC、ycy} \)

解決

私たちは、列挙して見ることができます

場合\(N = 1 \) 答えは(2 \)\しますc, y

場合\(N = 2 \) 答えは(3 \)\しますcy, yc, yy

場合\(N = 3 \) 答えは(5 \)\しますcyy, cyc, yyy, yyc, ycy

場合\(N = 4 \) 答えは(8 \)\しますyyyy, yyyc, yycy, ycyy, cyyy, cycy, yccy, ycyc

場合\(N = 5 \) 答えは(13 \)\しますyyyyy, yyyyc, yyycy, yycyy, ycyyy, cyyyy, yycyc, ycyyc, cyyyc, ycycy, cyycy, cycyy, cycyc

\(\ cdots \ cdots \)

簡単に加算法則:\(\ TEXTRM {F(I)= F(I - 1)+ F(I - 2)}(X \ GE 3)\)。

以下のために必要なコードが終了したら(N = 1 \)\特許判定時間。

コード

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>

using namespace std;

typedef long long LL;
const int mod = 1e9 + 7;
int n;
int main() {
    scanf("%d", &n);
    if (n == 1) {//特判n = 1的情况
        printf("2\n");
        return 0;
    }
    LL x1 = 2, x2 = 3;
    for (int i = 3; i <= n; i++) {
        LL tmp = x1;
        x1 = x2 % mod;
        x2 = (x2 + tmp) % mod;//前两项的和
    }
    printf("%lld\n", x2 % mod);//不要忘记取余
    return 0;
}

おすすめ

転載: www.cnblogs.com/shenxiaohuang/p/11723153.html