缺点:并没有检查输入异常
#include<iostream> using namespace std; int main() { int t3; cin >> t3; int t1 = 0, t2 = 1; cout << t1 << " " << t2 << " "; t3 -= 2; while (t3 > 0) { int t4 = t2; t2 = t1 + t2; t1 = t4; cout << t2 << " "; t3--; } system("pause"); return 0; }
.data .text main: li $v0, 5 syscall move $t3, $v0 #输入t3的值,t3用于表示需要输出前t3项斐波那契数列(下简称“数列”) li $t1, 0 #t1表示数列的第一项 li $t2, 1 #t2表示数列的第二项 li $v0, 1 move $a0, $t1 syscall #打印数列第一个值 li $v0, 11 #打印空格 li $a0, 0x20 syscall li $v0, 1 move $a0, $t2 syscall #打印第二个值 li $v0, 11 #打印空格 li $a0, 0x20 syscall addi $t3, $t3, -2 #由于已经打印出第一个值和第二个值,那么之后只需要打印$t3 - 2个值即可 loop: blez $t3, here move $t4, $t2 add $t2, $t2, $t1 move $t1, $t4 li $v0, 1 move $a0, $t2 syscall li $v0, 11 #打印空格 li $a0, 0x20 syscall addi $t3, $t3, -1 #完成一次循环 b loop here: li $v0, 10 syscall