Другие языки программирования и технологии

задано натуральное четырехзначное число получить из его цифр все возможные двузначные цифры

Сначала цифры — это легко:

N1 := N div 1000;
N2 := (N div 100) mod 10;
N3 := (N div 10) mod 10;
N4 := N mod 10;

А дальше то-же не сложно ( только нужно учесть, что в исходном числе могли быть повторяющиеся цифры и нули ) :

S := [];
NN := N1 * 10 + N2; if (NN > 10) and Not(NN in S) then begin Include(S, NN); WriteLn(NN); end;
NN := N1 * 10 + N3; if (NN > 10) and Not(NN in S) then begin Include(S, NN); WriteLn(NN); end;
NN := N1 * 10 + N4; if (NN > 10) and Not(NN in S) then begin Include(S, NN); WriteLn(NN); end;
NN := N2 * 10 + N1; if (NN > 10) and Not(NN in S) then begin Include(S, NN); WriteLn(NN); end;
NN := N2 * 10 + N3; if (NN > 10) and Not(NN in S) then begin Include(S, NN); WriteLn(NN); end;
NN := N2 * 10 + N4; if (NN > 10) and Not(NN in S) then begin Include(S, NN); WriteLn(NN); end;
NN := N3 * 10 + N1; if (NN > 10) and Not(NN in S) then begin Include(S, NN); WriteLn(NN); end;
NN := N3 * 10 + N2; if (NN > 10) and Not(NN in S) then begin Include(S, NN); WriteLn(NN); end;
NN := N3 * 10 + N4; if (NN > 10) and Not(NN in S) then begin Include(S, NN); WriteLn(NN); end;
NN := N4 * 10 + N1; if (NN > 10) and Not(NN in S) then begin Include(S, NN); WriteLn(NN); end;
NN := N4 * 10 + N2; if (NN > 10) and Not(NN in S) then begin Include(S, NN); WriteLn(NN); end;
NN := N4 * 10 + N3; if (NN > 10) and Not(NN in S) then begin Include(S, NN); WriteLn(NN); end;
Евгений Фалеев
Евгений Фалеев
70 597
Лучший ответ
Исключено. Двузначных цифр не существует.
Могу прислать программу, которая разбирает 3-значное число и делает все перестановки.

Похожие вопросы