#include #include int main(int ac, char **av) { BIGNUM l1, l2, l3; int n = atoi(av[1]); int state; char *result; BN_init(&l1); BN_init(&l2); BN_init(&l3); BN_zero(&l1); BN_one(&l2); BN_zero(&l3); state = 1; do { switch (state) { case 1: BN_add(&l3, &l2, &l1); state = 2; break; case 2: BN_add(&l1, &l3, &l2); state = 3; break; case 3: BN_add(&l2, &l1, &l3); state = 1; break; } } while (--n != 0); switch (state) { case 1: result = BN_bn2dec(&l2); break; case 2: result = BN_bn2dec(&l3); break; case 3: result = BN_bn2dec(&l1); break; } printf("%s\n", result); }