6. Sukeičiami skaitmenys. 
Norint rasti kiek galima didesnį skaičių, reikia mėginti padidinti jo kuo aukštesnę skiltį – sukeisti šios skilties skaitmenį su didžiausiu skaitmeniu iš žemesnės skilties. 
Taigi siūlome šitokį uždavinio sprendimo algoritmą: fiksuojame pirmąjį skaitmenį iš kairės, tada peržiūrime likusius skaitmenis, randame didžiausią (jei yra keletas lygių, imame labiausiai nutolusį į dešinę).
Pateiktuose pavyzdžiuose fiksuotasis ir pasirinktas skaitmenys yra ryškiame fone, o atmestasis – pilkšvame.

8	3	2	6	1	
5	8	7	7	1	

1 pavyzdys				2 pavyzdys
Jeigu pasirinktasis skaitmuo didesnis už fiksuotąjį skaitmenį, tai juos sukeičiame vietomis (1 pavyzdys).

5	8	7	7	1	
			7 > 5
7	8	7	5	1	

		1 pavyzdys
Jei ne, fiksuojame antrąjį skaitmenį iš kairės ir vėl kartojame analogiškus veiksmus (2 pavyzdys).
8	3	2	6	1	
		6 > 8
8	3	2	6	1	

		6 < 3
8	6	2	3	1	

		2 pavyzdys.

Beje, ieškoti didžiausio skaitmens iš likusiųjų geriausia peržiūrint skaičiaus skaitmenis iš dešinės į kairę iki fiksuojamo skaitmens.
Pakartoję šiuos veiksmus daug kartų, arba sukonstruosime norimą skaičių, arba įsitikinsime, kad to padaryti neįmanoma. Pateikiame pavyzdžių:

2	3	4	5	1	–	Paprasčiausias atvejis; fiksuojamas skaitmuo 2, peržiūrėjus 	
						likusius, randamas didžiausias skaitmuo 5, kuris ir sukeičiamas vietomis su fiksuotu. Gaunama: 53421	
2	3	5	5	1	–	Šiame skaičiuje yra lygių didžiausių skaitmenų (du penketai), tad	
						imamas esantis toliausiai dešinėje (dėl to ir peržiūrėti geriausia iš dešinės į kairę) ir sukeičiamas vietomis su fiksuotu skaičiumi: 53521	
5	3	2	5	1	–	Čia nėra skaitmenų, didesnių už pirmąjį; taigi fiksuojamas 	
						antrasis skaitmuo ir toliau daroma kaip ir pirmuoju, paprasčiausiu atveju.Gaunama: 55231.	
5	4	2	3	1	–	Peržiūrint skaitmenis iš dešinės, nėra skaitmenų, didesnių už 	
						antrąjį; fiksuojamas trečiasis skaitmuo ir gaunama: 54321	
5	4	3	3	1	–	Sukeisti vietomis nieko neįmanoma – tai pats didžiausias skaičius, kurį galima sudaryti iš duotų skaitmenų.	
Užrašome šio uždavinio algoritmą.

const ILG = 10;     { maksimalus skaičiaus ilgis }
type  skaičius = array [1..ILG] of 0..9;
function didžiausias_skaičius (n: longint): longint;
  var sk: skaičius;  { duotas skaičius, išskaidytas skaitmenimis }
      sk_sk,         { duoto skaičiaus skaitmenų skaičius }
      nr,            { fiksuojamo skaitmens numeris }
      max_nr,        { didžiausio skaitmens numeris }
      j: 0..10;
      max: 0..9;     { didžiausias skaitmuo }
      s: longint;
      rasta: boolean; { ar rastas reikalingas skaitmuo }
begin
  sk_sk := 0;
  repeat { skaičius išskaidomas skaitmenimis, masyve skaičius vaizduojamas atbulai }
    sk_sk := sk_sk + 1;
    sk[sk_sk] := n mod 10;
    n := n div 10
  until n = 0;
  nr := sk_sk; { fiksuojama aukščiausia skiltis }
  rasta := false;
  repeat
    max := sk[nr];
    max_nr := nr;
    { tikrinami visi žemesnių skilčių skaitmenys }
    for j := 1 to nr-1 do
        if sk[j] > max
           then begin { rastas reikalingas skaitmuo }
                  max := sk[j];
                  max_nr := j;
                  rasta := true
                end;
    nr := nr - 1
  until (nr <= 1) or rasta; { nebėra ko ieškoti arba jau rasta }
  nr := nr + 1;
  if rasta  { skaitmenų sukeitimas vietomis }
     then begin
            sk[max_nr] := sk[nr];
            sk[nr] := max
          end;
  s := 0;  { rezultato surinkimas iš skaitmenų }
  for j := sk_sk downto 1 do
      s := s * 10 + sk[j];
  skaičius := s
end;
Testo nr.	Pradinis duomuo	Rezultatas	Paaiškinimai	
1	1	1	Vienženklis skaičius	
2	8888	8888	Visi skaičiaus skaitmenys vienodi	
3	23451	53421	Keičiamas pirmasis skaitmuo	
4	23551	53521	Yra du didžiausi skaitmenys (penketai), keičiamas dešinesnis iš jų	
5	53251	55231	Keičiamas antrasis skaitmuo	
6	54231	54321	Keičiamas trečiasis skaitmuo	
7	54331	54331	Keitimas neatliekamas	
8	10011	11010	Atsitiktinis testas	
9	11022	21021	Atsitiktinis testas