フィボナッチとかで再帰
末尾再帰を捨てる(性能とスタック無駄遣いに目を瞑る)と可読性はかなりいいと思うんです。
int fibo(int n) {
if (n<=2) return 1;
else return fibo(n-1) + fino(n-2);
}
その場で使い捨てるようなプログラムにはアリだと思います。

でも末尾再帰を目指すと.. . .
int fibo(int n, int a=1, int b=1){
if (n<=2) return b;
else return fibo(n-1, b, a+b);
}
どうなんですかね. . .。Lisp脳だと forループより好まれるかもしれません。
ちゃんと末尾再帰最適化が効けば性能は良いのでしょう。