|
Троичная система
Задача:
Дано натуральное 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.
|
|
|
|