Добавил:
okley
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:1 семестр / sr10
.c#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 семестр
