ПОМОГИТЕ ИСПРАВИТЬ ЗАДАЧКУ
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
задан массив 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.
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.
Вообще я бы посоветовал сформировать массив чисел Фибоначчии, а потом проверять каждый элемент на вхождение в массив. Дальше объявляем переменную типа Boolean с исходным значением FALSE.
Перебираем весь массив, и если текущий элемент исследуемого массива совпадает с одним из элементов массива чисел фибоначчи, то присваиваем переменной значение TRUE, потом просто выводим значение этой переменной.
Перебираем весь массив, и если текущий элемент исследуемого массива совпадает с одним из элементов массива чисел фибоначчи, то присваиваем переменной значение TRUE, потом просто выводим значение этой переменной.
Ни что так не ограничивает фантазию программиста, как компилятор...
Добавить нечего. Ваша программа просто проверяет каждое число, начиная с третьего, не является ли оно суммой двух предыдущих
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
пожалуйста напишите алгоритм, а то я в паскале не очень
kardan, а чем тебе алгоритм MOTOCoder'а не алгоритм?
а если вот так?
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.
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.
Может я и не прав, но помоему то, что написано у Вас будет проверять, является ли массив рядом чисел Фибоначчи, а задача состоит в том, чтобы проверить, есть ли в массиве хоть одно число Фибоначчи.Хыиуду писал(а):Добавить нечего. Ваша программа просто проверяет каждое число, начиная с третьего, не является ли оно суммой двух предыдущих
Ни что так не ограничивает фантазию программиста, как компилятор...
что если вот так? суть вопроса в чём?kardan писал(а):а если вот так?
или ты взял где-то этот кусок кода и сам не можешь проверить удовлетворяет ли он твоему заданию? потому что ошибок в коде немерено, что в первом что во вротом.
а не проще спросить так: "Ребят, решите за меня задачу, а я заплачу за работу!" ?
или же задавай конкретный вопрос
Кстати, процедура нахождения N-ного числа Фибоначчи есть в разделе "Алгоритмы".
Ни что так не ограничивает фантазию программиста, как компилятор...