#include <stdio.h>
int c = 0;
int rec(int n) {
c++;
// ベースケース
if (n == 1) {
return 1;
} else if (n == 2) {
return 2;
} else {
return -6 * rec(n - 1) - 9 * rec(n - 2);
}
}
int main(void) {
int n = 5;
int value = rec(n);
printf("数列a%dの値は%d\n", n
, value
);
printf("このときrecの呼び出し回数は%d\n", c
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgYyA9IDA7CgppbnQgcmVjKGludCBuKSB7CgogICAgYysrOyAKICAgIAogICAgLy8g44OZ44O844K544Kx44O844K5CiAgICBpZiAobiA9PSAxKSB7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9IGVsc2UgaWYgKG4gPT0gMikgewogICAgICAgIHJldHVybiAyOwogICAgfSBlbHNlIHsKICAgICAgIAogICAgICAgIHJldHVybiAtNiAqIHJlYyhuIC0gMSkgLSA5ICogcmVjKG4gLSAyKTsKICAgIH0KfQoKaW50IG1haW4odm9pZCkgewogICAgaW50IG4gPSA1OwogICAgCiAgICBpbnQgdmFsdWUgPSByZWMobik7CiAgICBwcmludGYoIuaVsOWIl2ElZOOBruWApOOBryVkXG4iLCBuLCB2YWx1ZSk7CgogICAgcHJpbnRmKCLjgZPjga7jgajjgY1yZWPjga7lkbzjgbPlh7rjgZflm57mlbDjga8lZFxuIiwgYyk7CiAgICAKICAgIHJldHVybiAwOwp9Cg==