Advertisement
Guest User

пп

a guest
Dec 12th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. function ToTwo(Number: Integer): String;
  2. var
  3. TwoNumber, Temp: String;
  4. i: Integer;
  5. TempC: Char;
  6. begin
  7. TwoNumber := '';
  8. repeat
  9. Str(Number mod 2, Temp);
  10. TwoNumber := TwoNumber + Temp;
  11. Number := Number div 2;
  12. until Number = 0;
  13. for i := 1 to Length(TwoNumber) div 2 do
  14. begin
  15. TempC := TwoNumber[i];
  16. TwoNumber[i] := TwoNumber[Length(TwoNumber) + 1 - i];
  17. TwoNumber[Length(TwoNumber) + 1 - i] := TempC;
  18. end;
  19. ToTwo := TwoNumber;
  20. end;
  21.  
  22. function Shleft(Number: string): string;
  23. var
  24. Answer: string;
  25. begin
  26. Answer := Number[Length(Number)] + Copy(Number, 1, Length(Number) - 1);
  27. Shleft := Answer;
  28. end;
  29.  
  30. function ToTen(Number: String): Integer;
  31. var
  32. i, Coef, Temp, Answer, Tp: Integer;
  33. begin
  34. Coef := 1;
  35. Answer := 0;
  36. for i := Length(Number) downto 1 do
  37. begin
  38. Val(Number[i], Temp, Tp);
  39. Answer := Answer + Temp * Coef;
  40. Coef := Coef * 2;
  41. end;
  42. ToTen := Answer;
  43. end;
  44.  
  45. var
  46. Number, Amount, Max, i: Integer;
  47. TwoNumber: String;
  48.  
  49. begin
  50. Readln(Number);
  51. Max := Number;
  52. TwoNumber := ToTwo(Number);
  53. Amount := Length(TwoNumber) - 1;
  54. for i := 1 to Amount do
  55. begin
  56. TwoNumber := Shleft(TwoNumber);
  57. if ToTen(TwoNumber) > Max then
  58. Max := ToTen(TwoNumber);
  59. end;
  60. Writeln(Max);
  61. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement