#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 = 4;
    printf("数列anについて, n=%dのときの値は%d\n", n
, func
(n
)); 	return 0;
}
 
				I2luY2x1ZGUgPHN0ZGlvLmg+Ci8v57e057+S5ZWP6aGMRwoKaW50IGZ1bmMoaW50IG4pewogICAgaW50IGEsIGI9MiwgYz0xOwogICAgaW50IGk7CiAgICAKaWYgKG4gPT0gMSkgewogICAgICAgIHJldHVybiBjOyAgLy8gYTEgPSAxCiAgICB9IGVsc2UgaWYgKG4gPT0gMikgewogICAgICAgIHJldHVybiBiOyAgLy8gYTIgPSAyCiAgICB9IGVsc2UgewogICAgICAgIC8vIOWGjeW4sOOCkuS9v+OBo+OBpiBhbiA9IC0yKmFfe24tMX0gKyAyKmFfe24tMn0KICAgICAgICByZXR1cm4gLTIgKiBmdW5jKG4gLSAxKSArIDIgKiBmdW5jKG4gLSAyKTsKICAgIH0KfQoKaW50IG1haW4odm9pZCkgewoJaW50IG4gPSA0OwogICAgcHJpbnRmKCLmlbDliJdhbuOBq+OBpOOBhOOBpiwgbj0lZOOBruOBqOOBjeOBruWApOOBryVkXG4iLCBuLCBmdW5jKG4pKTsKCXJldHVybiAwOwp9Cg==