Найти число Фибоначчи, ближайшее к заданному натуральному числу N. (программирование в языке Си)
(программирование в языке Си)
(программирование в языке Си)
#include
#include
#include
int main() {
int n, prev = 0, current = 1, fib = 0, min, x = 0;
printf("n?.. ");
scanf_s("%i", &n);
min = n;
do {
fib = prev + current;
if (abs(n - fib) < min) {
min = abs(n - fib);
x = fib;
}
current = prev;
prev = fib;
} while (fib < n);
printf("min = %i\n", x);
_getch();
return 0;
}
#include
int main() {
int a = 0, b = 1, n;
printf("n? ");
scanf("%d", &n);
while (b < n) {
b += a;
a = b - a;
}
printf("result: %d", b - n > n - a? a : b);
return 0;
}
Рекурсивные функции, дружочек!
Если они там есть..
Сия функция по идее должна найти число меньше заданного:
int fibo(int n)
{
int a=1;
int b=1;
int c=2;
while (c < n)
{
c=a+b;
a:=b;
b:=c;
}
return c-a;
}
Может где напутал чуток - 100 лет на С не писал - но совсем малость.
Ну а дальше все как бы тривиально...