资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

go语言斐波那契数 斐波那契数程序

斐波那契数是什么

首先介绍斐波那契数列,斐波那契数列的排列是:1,1,2,3,5,8,13,21,34,55,89,144,。。。。。。

创新互联建站的客户来自各行各业,为了共同目标,我们在工作上密切配合,从创业型小企业到企事业单位,感谢他们对我们的要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。专业领域包括做网站、网站设计、电商网站开发、微信营销、系统平台开发。

依次类推下去,你会发现,它后一个数等于前面两个数的和。在这个数列中的数字,就被称为斐波那契数。2是第3个斐波那契数。现象: 这个级数与大自然植物的关系极为密切。几乎所有花朵的花瓣数都来自这个级数中的一项数字:菠萝表皮方块形鳞苞形成两组旋向相反的螺线,它们的条数必须是这个级数中紧邻的两个数字(如左旋8行,右旋13行);还有向日葵花盘……倘若两组螺线条数完全相同,岂不更加严格对称?可大自然偏不!直到最近的1993年,人们才对这个古老而重要的级数给出真正满意的解释:此级数中任何相邻的两个数,次第相除,其比率都最为接近0.618034……这个值,它的极限就是所谓的"黄金分割数"。

go语言 使用递归与循环两种方式计算斐波那契数列

给定一个正整数n计算出对应斐波那契数列对应的值

说明:

用mackbookpro i7 2.7GHZ笔记本进行测试,结果如下:

备注: 当n=80时,由于测试等待时间过长,强制中断了执行。

从测试结果看出,当n逐渐增大,递归方式计算斐波拉契数列的时间复杂性急剧增加。当n值较大时可以考虑用循环方式代替。

类似的方式也可以用于,求阶乘、遍历目录、汉诺塔等问题的解决。在后期的文章中,我将这些内容进行补充,敬请期待,谢谢。

用汇编语言编写斐多纳契数列的前n项和,至少加100位,

仅供参考吧

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: ;统计一共有多少个数字组成

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

JZ GO

INC DI

JMP L0

GO: ;计算第n个斐波那契数,把数字字符串转换为十进制数

MOV BL,10

MOV AX,1

MOV SI,DI ;为后面判断输入的是不是只输入一个数有用

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个斐波那契数存放到AX中

PUSH AX

ADD AX,BX

POP BX

LOOP L3

L4:

;显示这个斐波那契数

MOV DX,0

LEA SI,RESULT_SHOW

MOV DI,0 ;利用DI来累计一共有多少个数字

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

;参数: (AX)=DWORD型低16位数据

; (DX)=DWORD型高16位数据

; (CX)=除数

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

; (CX)=余数

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

DIVDW: ;子程序定义开始,功能是分离各个数字出来

PUSH AX

MOV AX,DX

MOV DX,0

DIV CX

MOV BX,AX

POP AX

DIV CX

MOV CX,DX

MOV DX,BX

RET ;子程序定义结束

CODE ENDS

END START


分享题目:go语言斐波那契数 斐波那契数程序
标题来源:http://cdkjz.cn/article/dogjcpe.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220