無限序列 斐波那契數列

2021-09-24 02:09:21 字數 1015 閱讀 7015

>description

我們按以下方式產生序列:

1、 開始時序列是: 「1」 ;

2、 每一次變化把序列中的 「1」 變成 「10」 ,「0」 變成 「1」。

經過無限次變化,我們得到序列"1011010110110101101…"。

總共有 q 個詢問,每次詢問為:在區間a和b之間有多少個1。

任務 寫乙個程式回答q個詢問

>input

第一行為乙個整數q,後面有q行,每行兩個數用空格隔開的整數a, b。

>output

共q行,每行乙個回答

>sample input

12 8

>sample output

41 <= q <= 5000

1 <= a <= b < 2^63

>解題思路

列舉以後可以發現規律:

每第(i)次變化得來的數列為第(i-1)次+第(i-2)次——也就是斐波那契數列

所以,相同地,第(i)個數列中1的數量為第(i-1)次+第(i-2)次。

由於a ~ b可以看為:(1~b) - (1 ~ a-1),字首和,

然後,1~i的數列中1的個數,可以看成是經過某兩次變化得來的1的個數的和(a+b),其中這分別兩次變化得來的數列的長度的和必須為i。

>**

#include

#include

using namespace std;

int n;

long long aa,bb,f[

100]

,c[100];

long long ooo

(long long cc)

int main()

return0;

}

斐波那契 遞迴 無限序列

我們按以下方式產生序列 1 開始時序列是 1 2 每一次變化把序列中的 1 變成 10 0 變成 1 經過無限次變化,我們得到序列 1011010110110101101 總共有 q 個詢問,每次詢問為 在區間a和b之間有多少個1。任務 寫乙個程式回答q個詢問 第一行為乙個整數q,後面有q行,每行兩...

Fibonacci斐波那契數列序列

著名的斐波拉契數列 fibonacci 除第乙個和第二個數外,任意乙個數都可由前兩個數相加得到 1,1,2,3,5,8,13,21,34,def fibonacci n if n 1 res 1 if n 2 res 1 if n 2 res fibonacci n 1 fibonacci n 2 ...

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...