1. 首页 > 科技

用MIPS指令编码Hanoi函数? jal指令用法

用MIPS指令编码Hanoi函数?jal指令用法

如何用C语言设计hanoi函数

#include<stdio.h>

void hanoi(int number,char begin,char end,char middle);

int main()

{

int number;

char begin,end,middle;

printf("请输入移动的盘子数:");

scanf("%d",&number);

fflush(stdin);

printf("\n请输入起点柱子的名称:");

scanf("%c",&begin);

fflush(stdin);

printf("\n请输入终点柱子的名称:");

scanf("%c",&end);

fflush(stdin);

printf("\n请输入第三根柱子的名称:");

scanf("%c",&middle);

hanoi(number,begin,end,middle);

system("pause");

return 0;

}

void hanoi(int number,char begin,char end,char middle)

{

if(number>=1)

{

hanoi(number-1,begin,middle,end);//将第n-1个盘子从起点移到中间

printf("将第%d个盘子从%c移动至%c\n",number,begin,end);

hanoi(number-1,middle,end,begin);//将第n-1个盘子从中间移到终点

}

}

如果喜欢就加点分吧~写的不容易~ *^_^*

标题:用Python编码描述汉诺塔步骤

#-*- coding:utf-8 -*-

count = 0

def hano():

    def hanoi(n,x,y,z):

        global count

        count += 1

        if n == 1:

            print('Monving %d' % n, 'from ',x,'to',z)

        else:

            hanoi(n-1,x,z,y)

            print('Monving %d' % n,  'from ',x,'to',z)

            hanoi(n-1,y,x,z)

    return hanoi

n = int(input("请输入汉诺塔的层数 :"))

hano()(n,'source','helper','target')

print("The total number of steps required is: ",str(count))-----------分-割-线-是-我----------------

复制分割线以上的代码,保存为hannoi.py,在python 3 下运行,得到结果62616964757a686964616fe4b893e5b19e31333363393066如题所示。

C语言中关于hanoi塔问题中hanoi(n-1,one,three,two)的执行方式

hanoi(n-1,one,three,two);

的意思就是说要把1号柱子上的盘子通过3号柱子挪到2号柱子上;

move(one,three);

的意思就是把1号柱子上的盘子挪到3号柱子上;

hanoi(n-1,two,one,three);

的意思就是说要把2号柱子上的盘子通过1号柱子挪到3号柱子上;

用MIPS汇编写一个减法的代码

la$a0, p1# Load prompt 

li$v0, 4# Print prompt

syscall

li$v0, 5# Get int x from the user

syscall

move $t0, $v0# Save x in reg $t0

# Get n

la$a0, p2# Load prompt 

li$v0, 4# Print prompt

syscall

li$v0, 5# Get int x from the user

syscall

move $t1, $v0# Save n in reg $t1

ble$t0, $zero, IF

ble$t1, $zero, IF

jELSE

IF:la$a0,op1

li$v0,4

syscall

jhalt

ELSE:move$t2, $t0

loop:blt$t2, 1, halt

move$a0, $t2

li $v0, 1

syscall

la$a0, space

li$v0, 4

syscall

sub$t2, $t2, $t1

jloop

halt:li$v0, 10

syscall

.data

p1:.asciiz "Enter x: "

p2:.asciiz "Enter n: "

space:.asciiz "   "

op1:.asciiz "Unable to count!"