Untitled
unknown
plain_text
2 years ago
1.2 kB
12
Indexable
#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); //вывод второй таблицы без первого члена
// проблема была решена костылём, см. выше
}Editor is loading...
Leave a Comment