斐波那契 遞迴 無限序列

2021-09-24 02:13:35 字數 864 閱讀 4067

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

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

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

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

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

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

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

共q行,每行乙個回答

1

2 8

4
1 <= q <= 5000

1 <= a <= b < 2^63

首先看那個序列,可以發現它是按照斐波那契數列的形式遞增的

然後我們就可以加入字首和發現:

f [a

,b]=

q[b]

−q[a

−1

]f[a,b]=q[b]-q[a-1]

f[a,b]

=q[b

]−q[

a−1]

然後用遞迴求字首和就好了

#include

#include

using

namespace std;

long

long f[

1005][

2],q;long

long a,b;

long

long

work

(long

long x)

}int

main()

return0;

}

無限序列 斐波那契數列

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

斐波那契 字首和 無限序列

有這樣乙個規則 1.把 1 變成 10 2.把 0 變成 1 乙個序列的第一位是 1 然後是 10 101 序列無限次操作後會得到 1011010110110101101 問某乙個區間內有多少個 1 我們按以下方式產生序列 1 開始時序列是 1 2 每一次變化把序列中的 1 變成 10 0 變成 1...

遞迴 斐波那契

題 若一頭小母牛,從出生起第四個年頭開始每年生一頭母牛,按此規律,第n年有多少頭母牛?具體分析 1 分析題目 從出生起第四個年頭開始每年生一頭母牛 時間 年 未成熟母牛 頭 成熟母牛 頭 母牛總數 頭 1 1 0 1 2 1 0 1 3 1 0 1 4 0 1 1 5 1 1 2 6 2 1 3 7...