又見斐波那契

2022-08-22 17:54:10 字數 1314 閱讀 7526

這是乙個加強版的斐波那契數列。

給定遞推式

求f(n)的值,由於這個值可能太大,請對109+7取模。

第一行是乙個整數t(1 ≤ t ≤ 1000),表示樣例的個數。

以後每個樣例一行,是乙個整數n(1 ≤ n ≤ 1018)。

每個樣例輸出一行,乙個整數,表示f(n) mod 1000000007。
412

3100

1

1657

558616258

/*

f(i) = f(i - 1) + f(i - 2) + i^3 + i^2 + i + 1

f(i) 1 1 1 1 1 1 f(i - 1)

f(i - 1) 1 0 0 0 0 0 f(i - 2)

(i + 1)^3 0 0 1 3 3 1 i ^ 3

(i + 1)^2 0 0 0 1 2 1 i ^ 2

i + 1 0 0 0 0 1 1 i

1 0 0 0 0 0 1 1

*/#include

using

namespace

std;

typedef

long

long

ll;const ll mod = 1e9 + 7

;void mul(ll f[6][6], ll a[6][6

], ll mod) }}

memcpy(f, c,

sizeof

(c));

}void mulself(ll a[6][6

], ll mod) }}

memcpy(a, c,

sizeof

(c));

}int

main() , , , , , };

ll f[

6] = , ans[6][6] = ;

for (int i = 0; i < 6; i++) ans[i][i] = 1

;

while

(n)

cout

<< (ans[0][0] * 1 + ans[0][1] * 0 + ans[0][2] * 8 + ans[0][3] * 4 + ans[0][4] * 2 + ans[0][5] * 1) % mod <

}return0;

}

又見斐波那契數列

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 m斐波那契數列。m斐波那契數列f n 是一種整數數列,它的定義如下 f 0 a f 1 b f n f n 1 f n 2 n 1 現在給出a,b,n,聰明的 你能求出f n 的值嗎?輸入 輸入包含多組測試資料 每組資料佔一行,...

nyoj 1000 又見斐波那契數列

分析 定義 x,y x代表a的個數,y代表b的個數。先找規律f 0 a 1,0 f 1 b 0,1 f 2 ab 1,1 f 3 abb 1,2 f 4 abbab 2,3 f 5 abbababb 3,5 f 6 abbababbabbab 5,8 由規律可知,f n a fibonacci n ...

又見斐波那契數列 大數的應用

題目描述 大家都知道斐波那契數列吧?斐波那契數列的定義是這樣的f0 0 f 1 1 fi f i 1 fi 2 f 0 0 f1 1 f i fi 1 f i 2現在給你乙個數x,聰明的你一定知道這是斐波那契數列中的第幾項。資料保證x一定有對應的項y,且 2 y 1e4 輸入 第一行乙個整數t,表示...