だからここで私はmipsでこの関数を持っています。私はそれをcに変換しようとしています。
1 mystery: bne $0, $a0, recur #
2 li $v0, 0 #
3 jr $ra #
4 recur: sub $sp, $sp, 8 #
5 sw $ra, 4($sp) #
6 sub $a0, $a0, 1 #
7 jal mystery #
8 sw $v0, 0($sp) #
9 jal mystery #
10 lw $t0, 0($sp) #
11 addu $v0, $v0, $t0 #
12 addu $v0, $v0, 1 #
13 add $a0, $a0, 1 #
14 lw $ra, 4($sp) #
15 add $sp, $sp, 8 #
16 jr $ra #
これを見るだけで、再帰的に見えます
intミステリー(int n){
}
何かが8から始まるように見えますが、謎へのジャンプですぐに迷子になります。エンドケースは0に等しいようです
何か案は?