win32 实现阶乘 和 斐波那契数列

阶乘:

.486

.model flat, stdcall

include \masm32\include\msvcrt.inc

includelib \masm32\lib\msvcrt.lib

.data

i dd 2

f dd 1

n dd ?

input db ‘please input a number‘,0

output db ‘the result is ‘,0

dataa db ‘%d‘,0

.code

start:

invoke crt_printf,addr input

invoke crt_scanf,addr dataa,addr n

mov eax,f

mov ebx,i

mov ecx,n

cmp ebx,ecx

jle again

again:

mul ebx

inc ebx

cmp ebx,ecx

jle again

mov n,eax

invoke crt_printf,addr output

invoke crt_printf,addr dataa,n

ret

end start

斐波那契数列:

.486

.model flat,stdcall

include \masm32\include\msvcrt.inc

includelib \masm32\lib\msvcrt.lib

.data

a dd 0

b dd 1

i dd 1

t dd ?

n dd ?

vac db ‘ ‘,0

input db ‘please input the number of the sequence:‘,0

output db ‘the Fibonacci sequence is: ‘,0

data1 db ‘%d‘,0

.code

start:

invoke crt_printf,addr input

invoke crt_scanf,addr data1,addr n

invoke crt_printf,addr output

invoke crt_printf,addr data1,a

invoke crt_printf,addr vac

invoke crt_printf,addr data1,b

invoke crt_printf,addr vac

mov ecx,i

cmp ecx,n

jl again

again:

mov ebx,b

mov t,ebx

mov eax,a

add ebx,eax

mov b,ebx

invoke crt_printf,addr data1,b

invoke crt_printf,addr vac

mov eax,t     mov a,eax

inc i

mov ecx,i

cmp ecx,n

jl again

ret

end start

时间: 2024-10-05 09:17:03

win32 实现阶乘 和 斐波那契数列的相关文章

用递归函数求n的阶乘及斐波那契数列中的第n个数的值

题目要求:使用递归函数求n的阶乘及斐波那契数列中第n项的值. 1.求n的阶乘: 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1. 计算公式为n!=1×2×3×...×n:递推公式可写作n!=n×(n-1)! 于是有: def fact(n): if n==1: return 1 return n*fact(n-1) n=int(input("请输入一个正整数:"))print(fact(n)) 2.求斐波那契数列中第n项的值: 形如1.1.2.

win32汇编实现阶乘和斐波那契数列

win32阶乘程序 .486 ;使用486处理器.model flat,stdcall include \masm32\include\msvcrt.inc includelib \masm32\lib\msvcrt.lib .data result0 dd 1;存储最终结果 inputdata dd ?;输入的阶乘的最大值 type0 db '%d',0 data4 db '请输入阶乘最大值ddddd: ',0 data1 db '请输入阶乘最大值: ',0 data2 db '阶乘结果为:

递归:阶乘、斐波那契数列

阶乘 public static void main(String[] args) { System.out.println(factorial(5));; } //factorial 阶乘 public static long factorial(int n) { if (n == 1) { return 1; } return n*factorial(n-1); } 阶乘画图理解 斐波那契数列递归实现: public static void main(String[] args) { Sys

阶乘、斐波那契数列、打印三角形(*)递归,冒泡排序

1.用递归求阶乘 5*4*3*2*1 static int Show(int num)//Show(5) { if (num <= 0) return 1; else return num*Show(num-1); } 2.斐波那契数列,1.1.2.3.5.8.13 求出第三十位 static int Show(int num)// Show(30) { if (num == 0 || num < 0) return 0; else if (num == 1 || num == 2) retu

计算 num 的 n 次幂、n 的阶乘、斐波那契数列、字符串的字节长度、去除字符串中的重复字符

1 //计算 num 的 n 次幂 2 function numPow(num, n) { 3 if (n == 1) { 4 return num; 5 } 6 return num * numPow(num, n - 1); 7 } 8 9 //计算 n 的阶乘 10 function nFactorial(n) { 11 if (n == 1) { 12 return 1; 13 } 14 return n * nFactorial(n - 1); 15 } 16 17 //斐波那契数列,

249 递归:概念,利用递归求1~n的阶乘,利用递归求斐波那契数列,利用递归遍历数据

6.1什么是递归 递归:如果一个函数在内部可以调用其本身,那么这个函数就是递归函数. 简单理解: 函数内部自己调用自己, 这个函数就是递归函数 注意:递归函数的作用和循环效果一样,由于递归很容易发生"栈溢出"错误(stack overflow),所以必须要加退出条件return. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&g

斐波那契数列和递归实现阶乘

package com.lv.study; public class DemoAm4 { //斐波那契数列:生兔子 :从1和1开始 后面一个数等于前面两个数之和 public static void main(String[] args) { test2(); } public static void test2(){ int num1=1; int num2=1; int result =0;//暂时不知道结果 //推算第5轮结果 int n=5; System.out.print("1\t1

php实现斐波那契数列以及由此引起的联想

斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理.准晶体结构.化学等领域,斐波纳契数列都有直接的应用.————摘自百度百科 公式: F(n)=F(n

Python递归及斐波那契数列

递归函数 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数.举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n,用函数 fact(n)表示,可以看出:fact(n) = n! = 1 * 2 * 3 * ... * (n-1) * n = (n-1)! * n = fact(n-1) * n所以,fact(n)可以表示为 n * fact(n-1),只有n=1时需要特殊处理.于是,fact(n)用递归的方式写出来就是: def fact(