// An example of a C program with a recursive function

#include <stdio.h>

int sum_to(int n);

int main(void) {
    int max = 10;
    int result = sum_to(max);
    printf("Sum 1.. %d = %d\n", max, result);
    return 0;
}

//      $ra
//      $s0
//         $a0 (10)
int sum_to(int n) {
   if(n == 0){
       return 0;
   } else {
       int result = sum_to(n-1); //$v0 = 3
       return n + result;   //$v0 = n + $v0
   }
}