Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
1.2 kB
2
Indexable
Never
#include <stdio.h>
#include <limits.h>

void jakob (int, int, int, int, int); // у меня был ряд Якобшталя

int main (void)
{
    int k;
    scanf ("%d", &k);
    int a = 1, a1 = 0, a2 = 1, i = 1;
    jakob (k, a, a1, a2, i);
    printf ("1.   1"); //осторожно, перед вами костыль
    return 0;
}

void jakob (int k, int a, int a1, int a2, int i)
{
    printf ("%d.   %d\n", i, a); //вывод первой таблицы
    if (i == k)
    {
        printf ("\n%d-th chislo jakob = %d\n\n", k, a);
        return;
    }
    else
    {
        if (INT_MAX - a2 >= 2*a1) //проверка переполнения
        {
            a = a2 + 2 * a1; //считаем число Якобшталя
            a1 = a2; a2 = a; //считаем число Якобшталя
            i++;
            jakob (k, a, a1, a2, i); //рекурсия
        }
        else
            printf ("!\n");
    }
    printf ("%d.   %d\n", i, a); //вывод второй таблицы без первого члена
    // проблема была решена костылём, см. выше
}
Leave a Comment