Другие языки программирования и технологии
	
		
		
								
				
								
				
								
				
								
				
			
	
		
			Найти число Фибоначчи, ближайшее к заданному натуральному числу N. (программирование в языке Си)
(программирование в языке Си)
	
	
	#include <math.h> 
#include <stdio.h>
#include <conio.h>
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 <stdio.h>
#include <conio.h>
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;
}
Сия функция по идее должна найти число меньше заданного: 
 
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 лет на С не писал - но совсем малость.
Ну а дальше все как бы тривиально...
				
							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 лет на С не писал - но совсем малость.
Ну а дальше все как бы тривиально...
#include <stdio.h> 
 
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 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;
}
Рекурсивные функции, дружочек! 
Если они там есть..
				
							Если они там есть..
Похожие вопросы
- Программирование на языке СИ с использованием подпрограммы-функции
- какую программу лучше использовать для программирования на языке Си?
- Программирование на языке Си. Нужна небольшая помощь.
- программирование на языке си
- Дано натуральное число п. Найти знакочередующуюся сумму цифр числа n:
- Найти все натуральные числа, не превосходящие заданного числа n, которые делятся на каждую из своих цифр. Паскаль.
- Даны натуральные числа N и A1,…, AN. Образовать новые одномерные последовательности B1, …, BN и C1, …, CN
- Паскаль. Представить натуральное число n в виде суммы трёх квадратов натуральных чисел.
- как решить через abc pascal задачу "Дано натуральное число n. Получить все простые делители этого числа"
- Требуется напечатать разложение заданного числа n на простые множители.
 
			 
						 
						