Программа которая запрашивает целое число N16 из диапазона FFFECD5F и формирует в переменных N2, N8 и N10 его двоичное, восьмеричное и 10-ричное представление. Результаты выводятся на экран кто шарит!! Делается На паскале!
Program Task; Const N = 5; Var a: Array [1..N] of LongInt; i: Integer; Function MinDigit(number: LongInt): Integer; Var digits: Array of Integer; num, min, i: Integer; Begin num := number; While num <> 0 Do Begin num := num Div 10; i := i + 1; End; SetLength(digits, i); num := number; For i := 0 To Length(digits) - 1 Do Begin digits[i] := num Mod 10; num := num Div 10;End; For i := 0 To Length(digits) - 1 Do If digits[i] < digits[min] Then min := i; Result := digits[min]; End; Begin WriteLn('Введите ', N, ' целых чисел через пробел'); For i := 1 To N Do Read(a[i]); For i := 1 To N Do Write(MinDigit(a[i]), ' '); End.
Действия выполняются в обратном порядке. Последнее действие было "из нечетных цифр вычитается,а к четным прибавляется 1".Из нечетных цифр вычли 1 и они стали четными (при вычитании единицы меняется четность), с четными все то же самое, только наоборот. Значит нужно ко всем четным цифрам прибавить 1, а от нечетных отнять 1, тогда получится исходная цифра.3216 -> 2307.Итак, знаем, что на предпоследнем шаге было число 2307. Идем еще на шаг назад. "цифры,занимающие четные разряды (нумерация разрядов ведется справа налево начиная с нуля) циклически сдвигаются вправо,а нечетные - влево на количество позиций, равных номеру разряда". Опять же, делаем наоборот. Цифры на четных разрядах сдвигаем влево, а нечетные - вправо. Количество позиций не меняется, только направление.2307 -> 5117Пароль почты Васи: 5117.Традиционно проверочка...Имеем 5117.Семь сдвигаем вправо на 0.7 -> 7.Один сдвигаем влево на 1.1 -> 0.Один сдвигаем вправо на 2.1 -> 3.Пять сдвигаем влево на 3.5 -> 2.Получаем 2307.От нечетных цифр отнимаем 1, а к четным прибавляем.Получаем 3216. Что и было дано изначально.
Const N = 5;
Var a: Array [1..N] of LongInt;
i: Integer;
Function MinDigit(number: LongInt): Integer;
Var digits: Array of Integer;
num, min, i: Integer;
Begin
num := number;
While num <> 0 Do
Begin
num := num Div 10;
i := i + 1;
End;
SetLength(digits, i);
num := number;
For i := 0 To Length(digits) - 1 Do
Begin
digits[i] := num Mod 10;
num := num Div 10;End;
For i := 0 To Length(digits) - 1 Do
If digits[i] < digits[min] Then
min := i; Result := digits[min];
End;
Begin
WriteLn('Введите ', N, ' целых чисел через пробел');
For i := 1 To N Do
Read(a[i]);
For i := 1 To N Do
Write(MinDigit(a[i]), ' ');
End.