Предмет: Информатика,
автор: dianaivanova
Нужна программа на Pascal. Через рекурсию.
Даны натуральные числа a и b. Определить, могут ли эти числа быть соседними членами последовательности Фибоначчи.
Ответы
Автор ответа:
0
// PascalABC.NET 3.0, сборка 1088
function Fib(n:integer):longint;
begin
if n<3 then Fib:=1 else Fib:=Fib(n-2)+Fib(n-1)
end;
var
a,b,f,mn:longint;
i:integer;
begin
Write('Введите а и b: '); Read(a,b);
if a<b then mn:=a else mn:=b;
i:=1;
repeat
f:=fib(i); Inc(i);
until f>=mn;
if f=mn then begin
if a=mn then mn:=b else mn:=a;
if fib(i)=mn then Writeln('Соседние числа Фибоначчи')
else Writeln('Меньшее - число Фибоначчи, большее - не его сосед')
end
else Writeln('Меньшее - не число Фибоначчи, работа закончена')
end.
Тестовые решения:
Введите а и b: 610 987
Соседние числа Фибоначчи
Введите а и b: 500 250
Меньшее - не число Фибоначчи, работа закончена
Введите а и b: 610 830
Меньшее - число Фибоначчи, большее - не его сосед
function Fib(n:integer):longint;
begin
if n<3 then Fib:=1 else Fib:=Fib(n-2)+Fib(n-1)
end;
var
a,b,f,mn:longint;
i:integer;
begin
Write('Введите а и b: '); Read(a,b);
if a<b then mn:=a else mn:=b;
i:=1;
repeat
f:=fib(i); Inc(i);
until f>=mn;
if f=mn then begin
if a=mn then mn:=b else mn:=a;
if fib(i)=mn then Writeln('Соседние числа Фибоначчи')
else Writeln('Меньшее - число Фибоначчи, большее - не его сосед')
end
else Writeln('Меньшее - не число Фибоначчи, работа закончена')
end.
Тестовые решения:
Введите а и b: 610 987
Соседние числа Фибоначчи
Введите а и b: 500 250
Меньшее - не число Фибоначчи, работа закончена
Введите а и b: 610 830
Меньшее - число Фибоначчи, большее - не его сосед
Похожие вопросы
Предмет: Математика,
автор: dmitrijvakoluk
Предмет: Английский язык,
автор: Аноним
Предмет: Математика,
автор: karona2019ooo467
Предмет: Математика,
автор: lovelove03
Предмет: Математика,
автор: ксюня56