Дано множество целых чисел от 1..100. Убрать все числа фибоначчи, и найти кол-во убранных чисел! Решить через множество — Pascal(Паскаль)

uses crt;
function Fib(x:byte):byte;{вычисление чисел Фибоначчи}
begin
if x<2 then Fib:=1{если 0 или 1 результат=1}
else Fib:=Fib(x-2)+Fib(x-1);{иначе результат =сумме 2х предыдущих чисел Фибоначчи
1,1,2,3,5,8,13. .89}
end;
var mi,mf,mr:set of byte;
    i,k:byte;
begin
clrscr;
mi:=[1..100];{исходное множество}
i:=1;k:=0;
mf:=[];{множество чисел Фибоначчи}
while Fib(i)<100 do{пока эти числа меньше 100}
 begin
   include(mf,Fib(i));{заносим их в множество}
   i:=i+1;{следующее}
   k:=k+1;{считаем}
 end;
mr:=mi-mf;{вычитаем из исходного множества множество Фибоначчи}
writeln('Ostalis:');
for i:=1 to 100 do{проверяем что осталось}
if i in mr then{если число есть в множестве}
write(i,' ');{выводим его}
writeln;
write('Udalili=',k);{сколько удалили}
readln
end.

Leave a Comment

3 + 6 =