65(8)=53(10)< 53(7)=38(10)
Чтобы перевести десятичное число в 2-чную систему, нужно это число последовательно делить на 2 с остатком. Например, переведём 83.
Делим
83 : 2 = 41 (остаток 1)
41 : 2 = 20 (остаток 1)
20 : 2 = 10 (остаток 0)
10 : 2 = 5 (остаток 0)
5 : 2 = 2 (остаток 1)
2 : 2 = 1 (остаток 0)
Теперь выписываем последний результат деления (у нас это 1) и после него все остатки в обратном порядке: 0 1 0 0 1 1
Получается число 1010011
Проверяем:
<span><em>// PascalABC.NET 3.3, сборка 1634 от 14.02.2018</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
procedure Fib(n:integer; var r:sequence of integer);
begin
if n<1 then exit; // нечего глупости задавать
case n of
1: r:=Seq(1);
2: r:=Seq(1,1);
else begin
r:=Seq(1,1);
var (p1,p2):=(1,1);
var p:integer;
loop n-2 do begin
p:=p1+p2;
r:=r+Seq(p);
(p1,p2):=(p2,p)
end
end
end
end;
begin
var s:sequence of integer;
var n:=ReadInteger('n=');
Fib(n,s);
s.Println
end.</span>
<u>Пример</u>
n= 8
1 1 2 3 5 8 13 21