Страница 1 из 1

ПОМОГИТЕ ИСПРАВИТЬ ЗАДАЧКУ

Добавлено: 02 апр 2008, 16:53
kardan
задан массив A(n) целого типа. и в зависимости от того, есть ли среди элементов массива хотя бы одно число Фибоначчи, вывести сообщение true , false

program tyr;
uses crt;
Var
n:integer;
mas : array [1..100] of integer;
i : integer;
Begin
clrscr;
writeln('vv');
readln(n);
for i:=3 to n do
begin
if mas[i-1]+mas[i-2]=mas then writeln ('true') else writeln ('false') ;
End;
readln;
end.

Re: ПОМОГИТЕ ИСПРАВИТЬ ЗАДАЧКУ

Добавлено: 02 апр 2008, 17:10
MOTOCoder
Вообще я бы посоветовал сформировать массив чисел Фибоначчии, а потом проверять каждый элемент на вхождение в массив. Дальше объявляем переменную типа Boolean с исходным значением FALSE.
Перебираем весь массив, и если текущий элемент исследуемого массива совпадает с одним из элементов массива чисел фибоначчи, то присваиваем переменной значение TRUE, потом просто выводим значение этой переменной.

Re: ПОМОГИТЕ ИСПРАВИТЬ ЗАДАЧКУ

Добавлено: 02 апр 2008, 17:32
Хыиуду
Добавить нечего. Ваша программа просто проверяет каждое число, начиная с третьего, не является ли оно суммой двух предыдущих

Re: ПОМОГИТЕ ИСПРАВИТЬ ЗАДАЧКУ

Добавлено: 02 апр 2008, 17:55
kardan
пожалуйста напишите алгоритм, а то я в паскале не очень

Re: ПОМОГИТЕ ИСПРАВИТЬ ЗАДАЧКУ

Добавлено: 02 апр 2008, 18:20
Dim...ON
kardan, а чем тебе алгоритм MOTOCoder'а не алгоритм?

Re: ПОМОГИТЕ ИСПРАВИТЬ ЗАДАЧКУ

Добавлено: 02 апр 2008, 18:30
kardan
а если вот так?
program trew;
uses crt;
var
Data:array [1..100] of integer;
a_n,a_n1:integer;{Два последовательных члена ряда}
c,j,n,s:integer;{Вспомогательная переменная}
Stop:boolean;
begin
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 to n do
begin
if Data[j]=a_n+1 then S:=S+1;
if Data[j]>s then Stop:=true;
end;
end;
readkey;
end.

Re: ПОМОГИТЕ ИСПРАВИТЬ ЗАДАЧКУ

Добавлено: 02 апр 2008, 18:39
MOTOCoder
Хыиуду писал(а):Добавить нечего. Ваша программа просто проверяет каждое число, начиная с третьего, не является ли оно суммой двух предыдущих
Может я и не прав, но помоему то, что написано у Вас будет проверять, является ли массив рядом чисел Фибоначчи, а задача состоит в том, чтобы проверить, есть ли в массиве хоть одно число Фибоначчи.

Re: ПОМОГИТЕ ИСПРАВИТЬ ЗАДАЧКУ

Добавлено: 02 апр 2008, 20:19
Dim...ON
kardan писал(а):а если вот так?
что если вот так? суть вопроса в чём?
или ты взял где-то этот кусок кода и сам не можешь проверить удовлетворяет ли он твоему заданию? потому что ошибок в коде немерено, что в первом что во вротом.
а не проще спросить так: "Ребят, решите за меня задачу, а я заплачу за работу!" ?
или же задавай конкретный вопрос

Re: ПОМОГИТЕ ИСПРАВИТЬ ЗАДАЧКУ

Добавлено: 02 апр 2008, 21:42
MOTOCoder
Кстати, процедура нахождения N-ного числа Фибоначчи есть в разделе "Алгоритмы".