正文
go语言编写斐波那契数列 编写斐波那契数列函数
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
斐波那契数列 编程输出该数列的前30项,每行输出5个数。
先定义一个长度为30的数组a[] /*int a [] = new int [30]*/
a[0] = 1;a[1] = 1;
for(int i = 2;i30;i++)
{
a[i] = a[i-1] + a[i-2];
}
for(int i = 0;i30;i++)
{
输出函数(看是什么语言)(a[i]+" "); /*System.out.print(a[i]+" ");*/
if((i+1)%5==0)
{这里是换行函数go语言编写斐波那契数列;/*System.out.println(" ");*/}
}
大概思路和程序在这里了
C++的语法不记得啦go语言编写斐波那契数列,go语言编写斐波那契数列你看下思路基本上都差不多go语言编写斐波那契数列,只是有些地方稍有不同而已。
1编写一个程序文件,求小于任意自然数n的斐波那契(Fibonacci)数列第50项斐波那
斐波那契数列是一个经典的数列,前两项为0和1,后续项为前两项之和,即:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
以下是C语言程序文件,用于求解小于自然数n的斐波那契数列第50项的值:
#include stdio.h
int main() {
int n = 100; // 假设n为100
int a = 0, b = 1, c;
int i;
for (i = 2; i 50; i++) {
c = a + b;
if (c n) break;
a = b;
b = c;
}
printf("小于%d的斐波那契数列第50项为%d", n, b);
return 0;
}
解释:
我们假设n为100,可以根据实际情况修改。
定义a=0,b=1为前两项,c为当前项,i从2开始循环,因为前两项已经确定。
每次循环,c为a和b之和,判断c是否大于n,如果大于,则退出循环,否则将a和b往后移动一项。
输出小于n的斐波那契数列第50项,即b。
注意:这里求的是小于n的斐波那契数列第50项,如果要求恰好等于n的斐波那契数列第几项,需要对程序进行修改。
go语言 使用递归与循环两种方式计算斐波那契数列
给定一个正整数n计算出对应斐波那契数列对应的值
说明:
用mackbookpro i7 2.7GHZ笔记本进行测试,结果如下:
备注: 当n=80时,由于测试等待时间过长,强制中断了执行。
从测试结果看出,当n逐渐增大,递归方式计算斐波拉契数列的时间复杂性急剧增加。当n值较大时可以考虑用循环方式代替。
类似的方式也可以用于,求阶乘、遍历目录、汉诺塔等问题的解决。在后期的文章中,我将这些内容进行补充,敬请期待,谢谢。
初学汇编菜鸟求教:显示斐波那契数列前20项 汇编程序编写
#include stdio.h
void main()
{int i,j=1,k=1,s=0;//I 控制循环 J为将输出的数字 K是中间传值的一个变量 S是2个数字之和
for(i=1;i=20;i++)//循环20次 输出20个数字
{
s=j+k;//S表示 2数字相加之和
printf("%d ",j);//输出J
j=k;//将未变的中间变量K 给J
k=s;//将 2数的和给K 以便下次 参与运算且传给J 作为第3个数
}
printf("\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语言编写斐波那契数列的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于编写斐波那契数列函数、go语言编写斐波那契数列的信息别忘了在本站进行查找喔。