Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
16.11.2025
Размер:
884 б
Скачать
#include <stdio.h>
#include <math.h>
int i=0, n0, j=0;
long int fib(int k, int l){ // Числа Фибоначчи
    int a, b;
    //printf("- Level = %d fib(%d)\n", i, k); Комментариями помечены элементы задания 2
    //i++;
    if(k<=2){
        //i--;
        //printf("+ Level = %d return(fib(%d))\n", i, k);
        return(1);
    }
    if(k<=l){
            a=(fib(k-1, l));
            b=(fib(k-2, l));
            //i--;
            //printf("+ Level = %d return(fib(%d)+fib(%d))\n", i, k-1, k-2);
            return(a+b);
    }
    else{
        return(-1);
    }
}
int main(){
    int n, k=2, a1=1, a2=1, a3;
    while(2147483648-a1>a2){ // Нахождение предельного номера для отсутствия перегрузки
        k++;
        a3=a1+a2;
        a1=a2;
        a2=a3;
    }
    scanf("%d", &n);
    (fib(n, k)>=1) ? printf("%ld\n", fib(n, k)): printf("!\n");
}
Соседние файлы в папке 1 семестр