#include <stdio.h>
int c = 0;
int rec(int n) {
c++;
if (n == 1) return 2;
if (n == 2) return 3;
return 2 * rec(n - 1) + rec(n - 2);
}
int main(void) {
int n;
for (int i = 1; i <= n; i++) {
c = 0;
int a = rec(i);
printf("a%d = %d (rec呼び出し回数:%d回)\n", i
, a
, c
); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgYyA9IDA7IAppbnQgcmVjKGludCBuKSB7CiAgICBjKys7ICAKICAgIGlmIChuID09IDEpIHJldHVybiAyOwogICAgaWYgKG4gPT0gMikgcmV0dXJuIDM7CiAgICByZXR1cm4gMiAqIHJlYyhuIC0gMSkgKyByZWMobiAtIDIpOwp9CgppbnQgbWFpbih2b2lkKSB7CiAgICBpbnQgbjsKICAgIHNjYW5mKCIlZCIsICZuKTsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBjID0gMDsgCiAgICAgICAgaW50IGEgPSByZWMoaSk7CiAgICAgICAgcHJpbnRmKCJhJWQgPSAlZCDvvIhyZWPlkbzjgbPlh7rjgZflm57mlbDvvJolZOWbnu+8iVxuIiwgaSwgYSwgYyk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K