Написать программу, которая по двум заданным строкам, представляющим числа A и B в фибоначчиевой системе счисления,
190
351
Ответы на вопрос:
Var b, c, d : string;
a : array [1..255] of byte;
i, k, m : integer;
f1, f2 : text;
begin
assign(f1,'input.txt'); reset(f1);
readln(f1,b); readln(f1,c);
if length(b)<length(c) then
begin d:=b; b:=c; c:=d end;
for i:=1 to length(b)-length(c) do c:='0'+c;
m:=length(b);
for i:=1 to 255 do a[i]:=0;
for i:=1 to m do
a[i]:=ord(b[m+1-i])+ord(c[m+1-i])-96;
k:=1;
repeat
if k=1 then
begin
if a[1]>1 then
begin
a[1]:=0; if m<2 then m:=2; a[2]:=a[2]+1
end;
k:=k+1
end;
if k=2 then
begin
if a[2]<2 then
begin
if (a[2]=1) and (a[1]=1) then
begin
a[1]:=0; a[2]:=0; if m<3 then m:=3; a[3]:=a[3]+1
end;
k:=k+1
end
else
begin
if m<3 then m:=3; a[3]:=a[3]+1;
if a[1]=0 then
begin
a[1]:=a[1]+1; a[2]:=a[2]-2; k:=1
end
else
begin
a[1]:=0; a[2]:=a[2]-1;
end
end
end;
if k>2 then
if a[k]<2 then
begin
if (a[k-1]=1) and (a[k]=1) then
begin
a[k-1]:=0; a[k]:=0; if k+1>m then m:=k+1; a[k+1]:=a[k+1]+1
end;
k:=k+1
end
else
begin
if k+1>m then m:=k+1; a[k+1]:=a[k+1]+1;
if a[k-1]=0 then
begin
a[k-2]:=a[k-2]+1; a[k]:=a[k]-2; k:=k-2
end
else
begin
a[k-1]:=0; a[k]:=a[k]-1
end
end
until k>m;
assign(f2,'output.txt'); rewrite(f2);
for i:=m downto 1 do write(f2,a[i]); close(f2)
end.
a : array [1..255] of byte;
i, k, m : integer;
f1, f2 : text;
begin
assign(f1,'input.txt'); reset(f1);
readln(f1,b); readln(f1,c);
if length(b)<length(c) then
begin d:=b; b:=c; c:=d end;
for i:=1 to length(b)-length(c) do c:='0'+c;
m:=length(b);
for i:=1 to 255 do a[i]:=0;
for i:=1 to m do
a[i]:=ord(b[m+1-i])+ord(c[m+1-i])-96;
k:=1;
repeat
if k=1 then
begin
if a[1]>1 then
begin
a[1]:=0; if m<2 then m:=2; a[2]:=a[2]+1
end;
k:=k+1
end;
if k=2 then
begin
if a[2]<2 then
begin
if (a[2]=1) and (a[1]=1) then
begin
a[1]:=0; a[2]:=0; if m<3 then m:=3; a[3]:=a[3]+1
end;
k:=k+1
end
else
begin
if m<3 then m:=3; a[3]:=a[3]+1;
if a[1]=0 then
begin
a[1]:=a[1]+1; a[2]:=a[2]-2; k:=1
end
else
begin
a[1]:=0; a[2]:=a[2]-1;
end
end
end;
if k>2 then
if a[k]<2 then
begin
if (a[k-1]=1) and (a[k]=1) then
begin
a[k-1]:=0; a[k]:=0; if k+1>m then m:=k+1; a[k+1]:=a[k+1]+1
end;
k:=k+1
end
else
begin
if k+1>m then m:=k+1; a[k+1]:=a[k+1]+1;
if a[k-1]=0 then
begin
a[k-2]:=a[k-2]+1; a[k]:=a[k]-2; k:=k-2
end
else
begin
a[k-1]:=0; a[k]:=a[k]-1
end
end
until k>m;
assign(f2,'output.txt'); rewrite(f2);
for i:=m downto 1 do write(f2,a[i]); close(f2)
end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Другие предметы
-
lvalerika29.07.2021 02:27
-
saaaasss0107.01.2021 08:13
-
юрий11314.11.2020 18:15
-
ТарасБульба111.01.2023 12:48
-
logvlad914.10.2021 10:43
-
знайка5688429.11.2022 16:44
-
nfjcgdh404.08.2022 16:08
-
Jiio08.02.2022 13:26
-
moderator1402.04.2020 12:09
-
Долгинцев22.03.2020 00:20
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.