我想要在 mips 中使用嵌套循环的以下输出

时间:2021-03-31 17:08:12

标签: python

我想要在 mips 中使用嵌套循环的以下输出。

1****
12***
123**
1234*

3 个答案:

答案 0 :(得分:1)

你可以这样做:

*.data 行:.ascii "\n" 。文本 主要的: li $t0, 1 li $t1,5

for1:
beq $t0, $t1, 退出 添加 $t0,$t0,1 li $t2, 1

for2:
beq $t2, $t0, print_Nline 移动 $a0,$t2

li $v0, 1
syscall
addi $t2,$t2,1
j for2
    

print_Nline:

li $v0, 4
la $a0, line
syscall
j for1

退出: li $v0, 10 系统调用 .end main*

答案 1 :(得分:0)

.data
star:     .asciiz "*"
newline:  .asciiz "\n"
.text
main: 
     li $t0, 6
     li $t3, 1      # i = 1
   

loop1:
      beq $t3, $t0, end
      li $t1, 1      # j = 1
      li $t2, 1      # k = 0
      j loop2 

loop2:
      beq $t1,$t3, initialization

      li $v0, 1
      move $a0, $t1
      syscall  

      addi $t1, $t1, 1 
      j loop2

initialization:
               addi $t1, $t1, -1
               sub $t4, $t0, $t1
               j loop3

loop3:
              beq $t2, $t4, changeNewline
           
              li $v0, 4
              la  $a0, star
              syscall
              addi $t2, $t2, 1 

              j loop3
     
changeNewline:  
        li $v0, 4
        la  $a0, newline
        syscall
        addi $t3, $t3, 1
        j loop1  


end:   
          li $v0, 10
          syscall

答案 2 :(得分:0)

使用嵌套的 for 循环:

>>> def rows(num_rows):
        for row in range(num_rows):
            for i in range(row+1):
                print(i+1, end="")
            for j in range(num_rows-row):
                print("*", end="")
            print()

        
>>> rows(4)
1****
12***
123**
1234*
>>> rows(5)
1*****
12****
123***
1234**
12345*

使用列表理解:

>>> def rows(num_rows):
    for row in range(num_rows):
        nums = "".join([str(i+1) for i in range(row+1)])
        stars = "".join(["*" for i in range(num_rows-row)])
        print(f"{nums}{stars}")

        
>>> rows(4)
1****
12***
123**
1234*
>>> rows(5)
1*****
12****
123***
1234**
12345*
相关问题