Главная » Pascal, Исходники, Разное » Поиск числа, в двоичном представлении которого наибольше единиц
Дек
10

Поиск числа, в двоичном представлении которого наибольше единиц

Указать то число , не превыщающее заданного N, в двоичном представлении которого больше всего единиц.

[sourcecode highlight=»60″ language=»pascal»]
uses Crt;
var
RDec, IDec: Longint;
RBin, IBin: String;

procedure Dec2Bin( Dec: LongInt; var Bin: String);
var
i: Char;

begin
Bin:=»;
if Dec = 0 then Bin:=’0′
else
While Dec >= 1 do
begin
i:=Char(Dec mod 2 + 48);
Bin:=i+Bin;
Dec:=Dec div 2;
end;
end;

procedure BinLess1(Bin: String; var SBin: String);
var
i: Byte;

begin
SBin:=»; i:=0;
While i < Length(Bin)-1 do
begin
Inc(i);
SBin:=SBin+’1′;
end;

end;

procedure Bin2Dec( Bin: String; var Dec: LongInt);
var
i: Byte;
Temp: Longint;

begin
Dec:=0;
for i:=1 to Length(Bin) do
begin
Temp:=Round(Exp((Length(Bin)-i)*Ln(2)))*(Ord(Bin[i])-48);
Dec:=Dec+Temp;
end;
end;

begin
ClrScr;
Readln(IDec);
Dec2Bin(IDec, IBin);
Writeln(IDec, ‘ = ‘, IBin);
BinLess1(IBin, RBin);
Bin2Dec(RBin, RDec);
Writeln(RDec, ‘ = ‘, RBin);
Readln;
end.
{ prepared specila for www.kpeople.ru by AlexeyJava }
[/sourcecode]

Процедуры Dec2Bin и Bin2Dec соответсвенно переводят число из десятичной системы исчисления в двоичную, и наоборот.
Процедура BinLess1 отвечает за нахождение числа в представлении которого больше всего единиц.



Понравилась статья? Сделай приятно ее автору, поделись с друзьями:


Хотите получать обновления данного блога на EMail?

Введите адрес Почтового Ящика:




Подтвердите подписку в письме пришедшем на Почту, после чего начнете получить рассылку.