Sha256: 687f494167affccc761c902445234c48b23bf29f29073db268a15d9a66021bbc
Contents?: true
Size: 1.23 KB
Versions: 396
Compression:
Stored size: 1.23 KB
Contents
# # Determine if triangle with given sides is invalid, equilateral, isoceles or scalene. # # Variables: # # $a0 - side a (int) # $a1 - side b (int) # $a2 - side c (int) # $v0 - enum 0: scalene, 1: isoceles, 2: equilateral, 3: invalid # $t0 - a == b # $t1 - b == c # $t5 - a == b && b == c (equilateral) # $t6 - a == b || b == c (isoceles, if not above) .globl triangle triangle: bgt $a0, $a1, swap_ab bgt $a1, $a2, swap_bc j solve swap_ab: move $t0, $a1 move $a1, $a0 move $a0, $t0 j triangle swap_bc: move $t0, $a2 move $a2, $a1 move $a1, $t0 j triangle solve: addu $t0, $a0, $a1 bge $a2, $t0, invalid # invalid if violate triangle inequality seq $t0, $a0, $a1 # a == b seq $t1, $a1, $a2 # b == c and $t5, $t0, $t1 or $t6, $t0, $t1 bne $t5, $zero, equilateral bne $t6, $zero, isoceles li $v0, 0 jr $ra equilateral: li $v0, 2 jr $ra isoceles: li $v0, 1 jr $ra invalid: li $v0, 3 jr $ra
Version data entries
396 entries across 396 versions & 1 rubygems