5.3 用栈翻转数组,动态规划求斐波那契数列

文章介绍了如何利用栈的数据结构实现数组的翻转,以及运用动态规划方法计算斐波那契数列的过程。通过示例代码展示了这两个技术在编程中的应用。
摘要由CSDN通过智能技术生成

5.3 用栈翻转数组,动态规划求斐波那契数列

1. 用栈翻转数组

assume cs:code,ds:data,ss:stack
data segment
	arr dw 1111h,2222h,3333h,4444h,5555h,6666h,7777h,8888h
	res db 800 dup(0)
data ends

stack segment
	db 100 dup(0)
stack ends

code segment
    start:
    
    mov ax,data
	mov ds,ax
	mov ax,stack
	mov ss,ax
	
	
	mov bx,0
	mov cx,8
	for:
		push ds:arr[bx]
		add bx,2
	loop for
	
	mov bx,0
	mov cx,8
	for1:
		pop ds:arr[bx]
		add bx,2
	loop for1
	
    
	mov ax,4c00h
    int 21

code ends
end start
comment*
翻转思路
vector<int>arr = {1,2,3,4,10,20,30,40};
stack<int>stk;
for (int i = 0; i < 8; i++)stk.push(arr[i]);
for (int i = 0; i < 8; i++)arr[i] = stk.top(),stk.pop();
*comment

image.png

2. 用动态规划求斐波那契数列

assume cs:code,ds:data,ss:stack
data segment
	arr dw 1h,1h,100 dup (0)
	res db 800 dup (0)
data ends

stack segment
	db 100 dup(0)
stack ends

code segment
    start:
    
    mov ax,data
	mov ds,ax
	mov ax,stack
	mov ss,ax
	
	
	mov bx,4
	mov cx,10
	for:
		mov dx,0
		add dx,ds:arr[bx-2]
		add dx,ds:arr[bx-4]
		mov ds:arr[bx],dx
	add bx,2
	loop for
 
	mov ax,4c00h
    int 21

code ends
end start
comment*
求斐波那契数列
int arr[100] = {1,1};
for (int i = 2; i < 10; i++)
    arr[i] = arr[i-1] + arr[i-2];
return arr
*comment

image.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值