我給你講一下思路:
在Fibonacci數(shù)列中,F[0]=0,F[1]=1,F[n]=F[n-1]+F[n-2](n>=2).舉例來說,Fibonacci數(shù)列的前十個(gè)數(shù)是
0,1,1,2,3,5,8,13,21,34,…
我們可以用利用矩陣乘法來計(jì)算Fibonacci的第n項(xiàng) :
|F[n+1] F[n] | = |1 1|.|1 1|.|1 1|...共n個(gè)
|F[n] F[n-1] | |1 0| |1 0| |1 0|
用這個(gè)方法就可以避免遞歸了.
我以前寫了一個(gè)程序,因?yàn)闉榱吮苊飧呔鹊穆闊?就直接取的是斐波那契數(shù)列的后四位.你看看,把它改成高精度就可以了.
#include
//#include
#include
using namespace std;
int i,c[10001];
int a[2][2]={{1,1},{1,0}};
int b[2][2];
void trial(int n)
{
if(n==1) return;
else{
if(n%2==1)
{
c[i]=1;i++;trial(n-1);
}
if(n%2==0)
{
c[i]=2;i++;trial(n/2);
}
}
}
void fib(int n)
{
int i,j;
memset(c,0,sizeof(c));
trial(n);
for(i=10000;i>=0;i--)
{
if(c[i]!=0)break;
}
for(j=i;j>=0;j--)
{
if(c[j]==1)
{
b[0][1]=a[0][0]%10000;
b[0][0]=(a[0][0]+a[0][1])%10000;
b[1][1]=a[0][1]%10000;
a[0][1]=b[0][1];
a[0][0]=b[0][0];
a[1][1]=b[1][1];
}
if(c[j]==2)
{
b[0][0]=(a[0][0]*a[0][0]+a[0][1]*a[0][1])%10000;
b[0][1]=(a[0][0]*a[0][1]+a[0][1]*a[1][1])%10000;
b[1][1]=(a[1][1]*a[1][1]+a[0][1]*a[0][1])%10000;
a[0][0]=b[0][0];
a[0][1]=b[0][1];
a[1][1]=b[1][1];
}
}
}
int main()
{
int N;
cin>>N;
if(N==0){cout
斐波那契數(shù)列c++編程
斐波那契數(shù)列c++編程
編寫c++程序求斐波那契數(shù)列的第n項(xiàng)和前n項(xiàng)和
斐波那契數(shù)列也沒給出
最后不用遞歸 效率太低
編寫c++程序求斐波那契數(shù)列的第n項(xiàng)和前n項(xiàng)和
斐波那契數(shù)列也沒給出
最后不用遞歸 效率太低
其他人氣:512 ℃時(shí)間:2020-06-13 05:02:22
優(yōu)質(zhì)解答
我來回答
類似推薦
- 關(guān)于斐波那契數(shù)列的編程題求助
- 編程求斐波那契數(shù)列的第20項(xiàng).斐波那契數(shù)列為1,1,2,3,8,13.,
- 用java編寫程序,輸出斐波那契數(shù)列的前10個(gè)數(shù).
- My father has lunch at twelve o'clock.(對(duì)劃線部分提問)劃線部分是at twelve o'clock.
- 運(yùn)動(dòng)會(huì)開幕式現(xiàn)場(chǎng)放飛100個(gè)藍(lán)氣球、紅氣球、黃氣球,其中紅氣球比黃氣球多2個(gè),藍(lán)氣球比黃氣球少1個(gè),三種氣球各有多少個(gè)?
- What‘s your favorite TV show怎樣回答
- jony用英文怎么讀,最好把音標(biāo)寫出來,
- 描寫舞蹈的文章
- 學(xué)校要粉刷新教室學(xué)校要粉刷新教室,已知教室的長(zhǎng)為12米,寬為6米,高為35米,除去門窗的面積18平方米,如
- 由FeO、Fe2O3、Fe3O4組成的混合物,測(cè)得其中鐵元素與氧元素的質(zhì)量比為21:8,則這種混合物中FeO、Fe2O3、Fe3O4的物質(zhì)的量之比可能為( ?。?A.1:2:1 B.2:1:1 C.1:1:1 D.1:1:38
- 二氧化碳與碳發(fā)生反應(yīng)生成一氧化碳的化學(xué)式
- 設(shè)a,b是互不相等的正數(shù),且a+b=1,分別用分析法、綜合法證明:a分之一加b分之一大于4
猜你喜歡
- 1《畫蛇添足》的故事中,“為蛇足者”為什么“終亡其酒”?
- 2花費(fèi)時(shí)間take和spend的區(qū)別
- 3醛可以生成醇
- 4一根鐵絲長(zhǎng)24米,要把它圍成一個(gè)長(zhǎng)方形,長(zhǎng)是寬的1.4倍,這個(gè)長(zhǎng)方形的面積是( )平方米?
- 5請(qǐng)教在五聲調(diào)式體系中,調(diào)號(hào)相同的調(diào)式稱為 ( ) A、同名調(diào) B、平行調(diào) C、同宮調(diào) D、同主音調(diào)
- 6圖書館有甲乙兩個(gè)書架,后來甲書添38本,乙書借出72本,這時(shí)甲架是乙架書的3倍,求甲乙書架各有書多少本?
- 7計(jì)算:1/(x+1)(x+2)+1/(x+2)(x+3)+1/(x+3)(x+4)+...+1/(x+2009)(x+2010)=1/2x+4020
- 8擴(kuò)建前的面積是605萬平方米,比擴(kuò)建后約少40分之27,擴(kuò)建后的面積約是多少萬平方米
- 9Nobody wants to eat them,__ __?怎么填
- 10a familiar visitor的意思!
- 11五年級(jí)下冊(cè)暑假作業(yè)(英語)
- 12千瓦和大卡怎么換算