問題描述
已知遞推數列: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列的元素滿足 舉個栗...