Троичная система


Задача:

  Дано натуральное n, напечатать в троичной системе счисления все числа от нуля до n.
См. также "Системы счисления с основанием k".


Код:


program Three_sys;
uses crt;
const
      lim=20; {размер массива}
var n, i, p:longint; {n-число}
      j, r:integer;
     mas:array[1..lim] of integer; {массив, в котором храниться число в троичной записи}
Begin
  clrscr;
  Write('Введите n: ');
  Readln(n);
    for i:= 0 to n do {перебираем все числа до n}
      begin
       p:=i; {сохраняем i в p}
       for j:= 1 to lim do {цикл по всем элементам массива}
         begin
         mas[j]:= p mod 3; {остаток от деления в массив}
         p:= p div 3; {целое от деления будем дальше делить}
         end;
       for j:= 1 to lim do
         if (mas[j]<>0) then r:=j; {считаем число ненулевых ячеек в массиве}
       if i= 0 then r:=1;
       Write(i,' = '); {вывод числа}
       for j:= 1 to r do {и его троичной записи}
         Write(mas[r-j+1]); {идем от конца массива}
       for j:= 1 to lim do
         mas[lim-j+1]:=0; {обнуляем массив}
       Writeln;
      end;
  Readln;
end.



Hosted by uCoz