Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.15 KB | None | 0 0
  1. program Z3;
  2.  
  3. {$APPTYPE CONSOLE}
  4. {$LONGSTRINGS ON}
  5. uses
  6.    SysUtils;
  7.  
  8. var
  9.    m, k, i, j, index: Byte;
  10.    DemicalNumber, Step, Temp, Num: Int64;
  11.    EndNumber, ArrOfChar, Number: String ;
  12.    Numeras: Boolean;
  13. begin
  14.    EndNumber := '';
  15.    ArrOfChar := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  16.    Readln(m, k);
  17.    Readln(Number);
  18.    if m <> 10 then
  19.    begin
  20.       DemicalNumber := 0;
  21.       Step := 1;
  22.       Numeras := True;
  23.       for i := 1 to Length(Number) do
  24.          if Number[i] in ['A'..'Z'] then
  25.             Numeras := False;
  26.       if Numeras then
  27.       begin
  28.          Num := StrToInt(Number);
  29.          while Num <> 0 do
  30.          begin
  31.             Temp := Num mod 10;
  32.             Num := Num div 10;
  33.             DemicalNumber := DemicalNumber + Temp * Step;
  34.             Step := Step * m;
  35.          end;
  36.       end
  37.       else
  38.       begin
  39.             for i := Length(Number) downto 1 do
  40.             begin
  41.                Numeras := True;
  42.                for j := 1 to Length(ArrOfChar) do
  43.                begin
  44.                   if Number[i] = ArrOfChar[j] then
  45.                   begin
  46.                      Numeras := False;
  47.                      index := j;
  48.                   end;
  49.                end;
  50.                if not Numeras then
  51.                   Temp := index + 9
  52.                else
  53.                   Temp := StrToInt(Number[i]);
  54.                DemicalNumber := DemicalNumber + Temp * Step;
  55.                Step := Step*m;
  56.             end;
  57.       end;
  58.    end
  59.    else
  60.    begin
  61.       Num := StrToInt(Number);
  62.       DemicalNumber := Num;
  63.    end;
  64.    if k = 10 then
  65.       EndNumber := IntToStr(DemicalNumber)
  66.    else
  67.    begin
  68.       while DemicalNumber > k do
  69.       begin
  70.          Temp := DemicalNumber mod k;
  71.          if Temp >= 10 then
  72.             EndNumber := ArrOfChar[Temp - 9] + EndNumber
  73.          else
  74.             EndNumber := IntToStr(Temp) + EndNumber;
  75.          DemicalNumber := DemicalNumber div k;
  76.       end;
  77.       if DemicalNumber >= 10 then
  78.          EndNumber := ArrOfChar[DemicalNumber - 9] + EndNumber
  79.       else
  80.          EndNumber := IntToStr(DemicalNumber) + EndNumber;
  81.    end;
  82.    Writeln(EndNumber);
  83.    Readln;
  84. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement