用go語言寫斐波那契數(shù)列 go語言實(shí)現(xiàn)斐波那契

用匯編語言編寫斐多納契數(shù)列的前n項(xiàng)和,至少加100位,

僅供參考吧

創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)與策劃設(shè)計(jì),牟定網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:牟定等地區(qū)。牟定做網(wǎng)站價格咨詢:18982081108

ASSUME CS:CODE,DS:DATA

DATA SEGMENT

BUFF DB 10

DB ?

DB 10 DUP(?)

RESULT DW ?

RESULT_SHOW DB 10 DUP(?)

DATA ENDS

CODE SEGMENT

START:

MOV AX,DATA

MOV DS,AX

LEA DX,BUFF

MOV AH,0AH

INT 21H

MOV DI,0

L0: ;統(tǒng)計(jì)一共有多少個數(shù)字組成

CMP BYTE PTR DS:[DI+2],0DH

JZ GO

INC DI

JMP L0

GO: ;計(jì)算第n個斐波那契數(shù),把數(shù)字字符串轉(zhuǎn)換為十進(jìn)制數(shù)

MOV BL,10

MOV AX,1

MOV SI,DI ;為后面判斷輸入的是不是只輸入一個數(shù)有用

MOV CX,DI

L2: PUSH AX

SUB BYTE PTR DS:[DI+1],30H

MUL BYTE PTR DS:[DI+1]

ADD RESULT,AX

POP AX

MUL BL

DEC DI

LOOP L2

;分兩種情況:1.輸入的是1;2.輸入的不是1

CMP SI,1

JNZ L7

CMP BYTE PTR RESULT,1

JNZ L7

MOV AX,RESULT

JZ L4

L7: MOV AX,1

MOV BX,0

MOV CX,RESULT

DEC CX

L3: ;第n個斐波那契數(shù)存放到AX中

PUSH AX

ADD AX,BX

POP BX

LOOP L3

L4:

;顯示這個斐波那契數(shù)

MOV DX,0

LEA SI,RESULT_SHOW

MOV DI,0 ;利用DI來累計(jì)一共有多少個數(shù)字

L5:

MOV CX,10

CALL DIVDW

ADD CL,30H

MOV DS:[SI],CL

CMP AX,0

JZ L6

INC SI

INC DI

JMP L5

L6:

MOV DL,DS:[SI]

MOV AH,2

INT 21H

CMP DI,0

JZ OK

DEC SI

DEC DI

JMP L6

OK:

MOV AX,4C00H

INT 21H

;參數(shù): (AX)=DWORD型低16位數(shù)據(jù)

; (DX)=DWORD型高16位數(shù)據(jù)

; (CX)=除數(shù)

;返回: (DX)=結(jié)果的高16位,(AX)=結(jié)果的低16位

; (CX)=余數(shù)

;32位除16位,可以防止溢出!

DIVDW: ;子程序定義開始,功能是分離各個數(shù)字出來

PUSH AX

MOV AX,DX

MOV DX,0

DIV CX

MOV BX,AX

POP AX

DIV CX

MOV CX,DX

MOV DX,BX

RET ;子程序定義結(jié)束

CODE ENDS

END START

go語言 使用遞歸與循環(huán)兩種方式計(jì)算斐波那契數(shù)列

給定一個正整數(shù)n計(jì)算出對應(yīng)斐波那契數(shù)列對應(yīng)的值

說明:

用mackbookpro i7 2.7GHZ筆記本進(jìn)行測試,結(jié)果如下:

備注: 當(dāng)n=80時,由于測試等待時間過長,強(qiáng)制中斷了執(zhí)行。

從測試結(jié)果看出,當(dāng)n逐漸增大,遞歸方式計(jì)算斐波拉契數(shù)列的時間復(fù)雜性急劇增加。當(dāng)n值較大時可以考慮用循環(huán)方式代替。

類似的方式也可以用于,求階乘、遍歷目錄、漢諾塔等問題的解決。在后期的文章中,我將這些內(nèi)容進(jìn)行補(bǔ)充,敬請期待,謝謝。

C語言 斐波那契數(shù)列 一個簡單的程序

遞歸

long func(int n)

{

if(n ==1 || n == 2) return 1;

return func(n - 1) + func(n -2);

}

用C語言表達(dá)斐波那契數(shù)列,怎么做?

#include stdio.h

main( ){

long f1,f2,f;

int i,n;

scanf("%d",n);

f1=f2=1;

if(n=2)

f=1;

else

for(i=3;i=n;i++){

f=f1+f2;

f1=f2;

f2=f;

}

printf("%ld\n",f);

}

波那契數(shù)列,又稱黃金分割數(shù)列,指的是這樣一個數(shù)列:0、1、1、2、3、5、8、13、21、34、??在數(shù)學(xué)上,斐波納契數(shù)列以如下被以遞歸的方法定義:

F(0)=0,F(xiàn)(1)=1,F(xiàn)(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在現(xiàn)代物理、準(zhǔn)晶體結(jié)構(gòu)、化學(xué)等領(lǐng)域,斐波納契數(shù)列都有直接的應(yīng)用,為此,美國數(shù)學(xué)會從1963起出版了以《斐波納契數(shù)列季刊》為名的一份數(shù)學(xué)雜志,用于專門刊載這方面的研究成果。

名稱欄目:用go語言寫斐波那契數(shù)列 go語言實(shí)現(xiàn)斐波那契
標(biāo)題URL:http://muchs.cn/article4/dophgie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、品牌網(wǎng)站設(shè)計(jì)、移動網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、軟件開發(fā)、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管