Var
n:integer;
i,j,k:byte;
a:array[1..3] of byte;
begin
Write('Введите натуральное трехзначное число: ');
Read(n);
for i:=1 to 3 do
begin
a[i]:=n mod 10;
n:=n div 10
end;
for i:=1 to 3 do
for j:=1 to 3 do
for k:=1 to 3 do
if a[i]<>0 then Write(a[i],a[j],a[k],' ');
Writeln
end.
<em><u>Тестовое решение:</u></em>
Введите натуральное трехзначное число: 307
777 770 773 707 700 703 737 730 733 377 370 373 307 300 303 337 330 333
Шесть
Если представить эти тропинки в виде проекции, то по сути мы имеем просто 3 отрезка, которые встречаются в одной точке (для проверки можете так 3 карандаша положить на стол концами друг к другу). Нам надо к каждому из трех "входов" подобрать по два "выхода" (при условии, что мы не можем вернуться назад).
То-есть мы должны 3*2 =6 раз спуститься, проложив 6 маршрутов.
1. вычитаем 1: 1111001001111110-1=<span>1111 0010 0111 1101 (это и есть обратный код)
2. инвертируем разряды: 0000 1101 1000 0010
Так как число отрицательное, то прямой код 1</span>000 1101 1000 0010<span>
3. переводим в десятичную систему: </span>1101 1000 0010(2) = 3458(10)
Таким образом, данное число в десятичной системе счисления -3458
// PascalABC.NET 3.1, сборка 1211 от 31.03.2016
begin
var a:=ArrRandom(10,-50,50); a.Println;
Writeln('Отрицательных ',a.Where(x->x<0).Count)
end.
<u><em>Тестовое решение:</em></u>
37 -20 2 -13 10 9 -25 11 8 -3
Отрицательных 4