>>208
*1
項ごとの、n,s,iを保存
int sum(int n, int s, int i){
 if (n < i) { return s; }
 retrun sum(n, s + i, i + 1);
}
int r = sum(10, 0, 1);

*2
項ごとの、s,iを保存
int i[11] = {1}, j, s[11] = {0};
for (j = 1; j <= 10; j++) {
 i[j + 1] = i[j] + 1;
 s[i[j + 1]] = s[i[j]] + i[j];
}

*3
保存しない
int i, s = 0;
for (i = 1; i <= 10; i++) {
 s = s + i;
}

再帰関数ではないのはわかるけど
これらは、スタックを保存しなければ
再帰処理ではないの?