| 
        
    
		
			| 
			
        		| Guest 
 
   
   Новичок
 |             Выполнить задание, если задана последовательность целых чисел длиной n.
 
 1. Определить в заданной последовательности целых чисел количество чисел Фибоначчи.
 2. Получить: min (a1 + an, a2 + an-1, ..., an/2 + an/2+1).
 |  
				| Всего сообщений: Нет | Присоединился: Never | Отправлено: 14 нояб. 2005 9:40 | IP
 |  |  
			| 
			
        		| miss_graffiti 
 
   Долгожитель
 |                  э..
 что есть числа Фибоначчи?
 то ли я их с чем-то спутала, то ли задача странно сформулированна.
 |  
				| Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 14 нояб. 2005 22:16 | IP
 |  |  
			| 
			
        		| VF   
 
   
   Administrator
 |                ФИБОНАЧЧИ ЧИСЛА - элементы числовой последовательности 1, 1, 2, 3, 5, 8,... (ряда Фибоначчи, Fibonacci; 1202), в которых каждый последующий член равен сумме двух предыдущих.
 |  
				| Всего сообщений: 3110 | Присоединился: май 2002 | Отправлено: 14 нояб. 2005 22:44 | IP
 |  |  
			| 
			
        		| miss_graffiti 
 
   Долгожитель
 |                  значит, не перепутала.
 тогда- в чем проблема?
 if a[n]=a[n-1]+a[n-2] then S:=S+1
 
 а для второй:
 min:=a[1]+a[n];
 for i:=2 to n do
 begin
 if a{{i}}+a[n+1-i]<min
 then min:=a{{i}}+a[n+1-i];
 
 *хотя что-то у меня сомнения, что правильно условие поняла.
 |  
				| Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 15 нояб. 2005 13:50 | IP
 |  |  
			| 
			
        		| Dzen 
 
   Удален
 |             Для первой
 ...
 var
 Data:array [1..n] of integer;
 a_n,a_n1:integer;{Два последовательных члена ряда}
 c:integer;{Вспомогательная переменная}
 Stop:boolean;
 ...
 a_n:=0;a_n1:=1;
 while Stop do
 begin
 c:=a_n1;
 a_n1:=a_n+a_n1;
 a_n:=c;
 Stop:=false;
 for j:=1 t n do
 begin
 if Data[j]=a_n+1 then S:=S+1;
 if Data[j]>then Stop:=true;
 end;
 end;
 
 Чуствуете принципиальную разницу между тем что делает 1 программа и эта?
 Гораздо более эффективным алгоритм можно сделать если данные находятся в списке.
 
 
 
 |  
				| Всего сообщений: N/A | Присоединился: N/A | Отправлено: 15 нояб. 2005 15:59 | IP
 |  |  
			| 
			
        		| miss_graffiti 
 
   Долгожитель
 |                  и в чем принципиальное отличие? (положительное, разумеется. длину кода и количество переменных я и так могу оценить).
 
 |  
				| Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 15 нояб. 2005 16:13 | IP
 |  |  
			| 
			
        		| Dzen 
 
   Удален
 |             Различие в том что твой алгоритм определяет сколько в массиве последовательных пар чисел Фибоначчи, а  не сколько там чисел Фибоначи.
 
 элементы числовой последовательности 1, 1, 2, 3, 5, 8
 
 Некоторые числа входят в эту последовательность, а некоторые - нет
   Например 4 это не число Фибоначчи, а 5 - да.
   Таким образом в массиве 5,20,1,34,2,13,4,21
 шесть чисел Фибоначчи (все кроме 20 и 4 )
 Сколько их насчитает твой алгоритм?
 
 Р.S. Извиняюсь за корявость своей программы - просто написал самый грубый вариант который считает то что нужно. Конечно же массив перед поиском надо упорядочить по возрастанию и сам алгоритм сделать так чтобы при возрастании a_n соотв. повышалась нижняя граница j.
 
 
 |  
				| Всего сообщений: N/A | Присоединился: N/A | Отправлено: 16 нояб. 2005 13:39 | IP
 |  |  
			| 
			
        		| miss_graffiti 
 
   Долгожитель
 |                  ага. значит, я задание не поняла.
 думала, что число Фибоначчи по условию - это именно то число, которое равно сумме двух предыдущих в данной последовательности.
 мой алгоритм ищет именно такие числа...
 |  
				| Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 16 нояб. 2005 19:10 | IP
 |  |  |