Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function ToTwo(Number: Integer): String;
- var
- TwoNumber, Temp: String;
- i: Integer;
- TempC: Char;
- begin
- TwoNumber := '';
- repeat
- Str(Number mod 2, Temp);
- TwoNumber := TwoNumber + Temp;
- Number := Number div 2;
- until Number = 0;
- for i := 1 to Length(TwoNumber) div 2 do
- begin
- TempC := TwoNumber[i];
- TwoNumber[i] := TwoNumber[Length(TwoNumber) + 1 - i];
- TwoNumber[Length(TwoNumber) + 1 - i] := TempC;
- end;
- ToTwo := TwoNumber;
- end;
- function Shleft(Number: string): string;
- var
- Answer: string;
- begin
- Answer := Number[Length(Number)] + Copy(Number, 1, Length(Number) - 1);
- Shleft := Answer;
- end;
- function ToTen(Number: String): Integer;
- var
- i, Coef, Temp, Answer, Tp: Integer;
- begin
- Coef := 1;
- Answer := 0;
- for i := Length(Number) downto 1 do
- begin
- Val(Number[i], Temp, Tp);
- Answer := Answer + Temp * Coef;
- Coef := Coef * 2;
- end;
- ToTen := Answer;
- end;
- var
- Number, Amount, Max, i: Integer;
- TwoNumber: String;
- begin
- Readln(Number);
- Max := Number;
- TwoNumber := ToTwo(Number);
- Amount := Length(TwoNumber) - 1;
- for i := 1 to Amount do
- begin
- TwoNumber := Shleft(TwoNumber);
- if ToTen(TwoNumber) > Max then
- Max := ToTen(TwoNumber);
- end;
- Writeln(Max);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement