遞推之擺動數列

2021-07-11 05:52:29 字數 761 閱讀 8916

問題描述

已知遞推數列:a(1)=1,a(2i)=a(i)+1,a(2i+1)=a(i)+a(i+1),(i為正整數),試求該數列的第n項與前n項中哪些項最大?最大值為多少?。

演算法分析

該數列分項序號為奇或偶兩種情況作不同遞推,所得數列呈大小有規律的擺動.

設定a陣列,賦初值a(1)=1.根據遞推式,在迴圈中分項序號i(2─n)為奇或偶作不同遞推:

mod(i,2)=0(即i為偶數),a(i)=a(i/2)+1.

mod(i,2)=1(即i為奇數),a(i)=a((i+1)/2)+a((i-1)/2)

每得一項a(i),與最大值max作比較,如果a(i)>max,則max=a(i).

最後,在所有項中搜尋最大項(因最大項可能多於一項),並列印最大值max.

程式**

#include 

using

namespace

std;

int main()

else

//奇數

if (arr[i] > max)

}cout

<< arr[n] << endl;

for (int i=1; i<=n; ++i)

}cout

<< max << endl;

delete arr;

return

0;}

元旦大放送之求擺動數列

如果乙個序列滿足下面的性質,我們就將它稱為擺動序列 序列中的所有數都是不大於k的正整數 序列中至少有兩個數。序列中的數兩兩不相等 如果第i 1個數比第i 2個數大,則第i個數比第i 2個數小 如果第i 1個數比第i 2個數小,則第i個數比第i 2個數大。比如,當k 3時,有下面幾個這樣的序列 1 2...

Pell數列(遞推)

描述 pell數列a1,a2,a3,的定義是這樣的,a1 1,a2 2,an 2an 1 an 2 n 2 給出乙個正整數k,要求pell數列的第k項模上32767是多少。格式輸入格式 第1行是測試資料的組數n n不超過1000 後面跟著n行輸入。每組測試資料佔1行,包括乙個正整數k 1 k 100...

矩陣優化遞推數列

求斐波那契數列第n項,輸出答案模10 9 7的值 n 2 63 對於學過線代的大佬請跳至solution 我們先介紹一下矩陣,我們表現形式就是二維陣列。而矩陣相對於二維陣列不同的是具有乘法運算。對於n m的矩陣a和m p的矩陣b,表示a b的矩陣c是n p的,其中矩陣c的第i行j列的元素滿足 舉個栗...