Петя и Вася придумали секретный алгоритм, с которого можно шифровать числа. Результат
(R) шифрования числа N строится следующим образом:
Шаг 1. Начальное значение результата R установить равным остатку от деления числа N на 6.
Шаг 2. Заменить число N на результат деления числа N на 6 нацело без остатка.
Шаг 3. Если на шаге 2 получился 0, закончить работу алгоритма.
Шаг 4. Если в записи результата R чётное число знаков, приписать к результату слева остаток от
деления числа N на 6, иначе приписать к результату справа остаток от деления числа N на 6.
Шаг 5. Перейти к шагу 2.
Например, число 20 кодируется как 23.
Вася получил от Пети зашифрованное число 432.
Какое число N зашифровал Петя?
namespace ConsoleApp1{ class Program { static void Main(string[] args) { int b = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Квадраты от 10 до"+ b); for (int i = 10;i<=b;i++) { Console.WriteLine(i*i); } int a = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Кубы от"+ a +"до 50"); for (int i = a; i <= 50; i++) { Console.WriteLine(i * i * i); } Console.WriteLine("Целые числа от "+(a<b?a:b)+"до"+ (a < b ? b : a)); if (a<b) { for (int i = a; i <= b; i++) { Console.WriteLine(i); } } else { for (int i = b; i <= a; i++) { Console.WriteLine(i); } } Console.ReadKey(); } }}
процедуру с параметрами, обеспечивающую перестановку двух заданных строк матрицы
написан на PascalABC.NET
но должно работать в TurboPascal
}
PROGRAM A5;
const
rows = 5;
cols = 8;
type
matrix = array [1..rows,1..cols] of integer;
var
AR : matrix;// рабочая матрица
i,j:byte;// счетчики
k1,k2:byte;// номера строк
// обмен строк матрицы местами
procedure SwapRows(row1:byte; row2:byte; var m:matrix);
var i,j:byte;
ax:integer;
begin
for i:=1 to cols do begin
ax := m[row1,i];
m[row1,i] := m[row2,i];
m[row2,i] := ax;
end;
end;
// выравнивание по правому краю - пробелы перед числом
function trailSpace(num:byte; len:byte):string;
var s:string;
i:byte;
begin
s := ''+num;
i := s.Length;
while (i<len) do begin
s := ' ' + s;
i := i+1;
end;
trailSpace := s;
end;
// вывод матрицы на экран
procedure displayMatrix(var m:matrix);
var i,j:byte;
begin
for i:=1 to rows do begin
write('Строка ', i, ': ');
for j:=1 to cols do begin
write();
write(trailSpace(AR[i,j], 4) );
end;
writeln(' ');
end;
end;
BEGIN
// заполнение массива и вывод его на экран
randomize();
for i:=1 to rows do
for j:=1 to cols do
AR[i,j] := random(256);
writeln('Начальный массив');
displayMatrix(AR);
// ввод данных
writeln(' ');
write('введите номер строк которые следует поменять местами: ');
readln(k1, k2);
if (k1<=rows) and (k2<=rows) then begin
SwapRows(k1, k2, AR);
writeln('Результат');
displayMatrix(AR);
end else
writeln('Номера строк должны быть меньше ', rows);
END.