#include <stdio.h>
//練習問題G
int func(int n){
int a, b=2, c=1;
int i;
if (n == 1) {
return c; // a1 = 1
} else if (n == 2) {
return b; // a2 = 2
} else {
// 再帰を使って an = -2*a_{n-1} + 2*a_{n-2}
return -2 * func(n - 1) + 2 * func(n - 2);
}
}
int main(void) {
int n = 3;
printf("数列anについて, n=%dのときの値は%d\n", n
, func
(n
)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Ci8v57e057+S5ZWP6aGMRwoKaW50IGZ1bmMoaW50IG4pewogICAgaW50IGEsIGI9MiwgYz0xOwogICAgaW50IGk7CiAgICAKaWYgKG4gPT0gMSkgewogICAgICAgIHJldHVybiBjOyAgLy8gYTEgPSAxCiAgICB9IGVsc2UgaWYgKG4gPT0gMikgewogICAgICAgIHJldHVybiBiOyAgLy8gYTIgPSAyCiAgICB9IGVsc2UgewogICAgICAgIC8vIOWGjeW4sOOCkuS9v+OBo+OBpiBhbiA9IC0yKmFfe24tMX0gKyAyKmFfe24tMn0KICAgICAgICByZXR1cm4gLTIgKiBmdW5jKG4gLSAxKSArIDIgKiBmdW5jKG4gLSAyKTsKICAgIH0KfQoKaW50IG1haW4odm9pZCkgewoJaW50IG4gPSAzOwogICAgcHJpbnRmKCLmlbDliJdhbuOBq+OBpOOBhOOBpiwgbj0lZOOBruOBqOOBjeOBruWApOOBryVkXG4iLCBuLCBmdW5jKG4pKTsKCXJldHVybiAwOwp9Cg==