224
>
{numerele lui Gigel} program nr_lui_gigel; {iterativ} type stiva=array[1..100] of integer; var st:stiva; i,n,k:integer; as,ev:boolean; procedure init(k:integer;var st:stiva); begin st[k]:=-1; end; procedure succesor(var as:boolean;var st:stiva;k:integer); begin if st[k]<9 then begin st[k]:=st[k]+1; as:=true; end else as:=false; end; procedure valid(var ev:boolean;st:stiva;k:integer); var i:integer; begin ev:=true; for i:=1 to k-1 do if st[i] mod 2 <> 0 then ev:=false; for i:=1 to k-1 do if st[i]<st[i+1] then ev:=false; end; function solutie(k:integer):boolean; begin solutie:=(k=n); end; procedure tipar; var i:integer; begin for i:=1 to n do write(st[i]); writeln; end; begin write('n=');readln(n); k:=1 ;init(k,st); while k>0 do begin repeat succesor(as,st,k); if as then valid(ev,st,k); until (not as) or (as and ev); if as then if solutie(k) then tipar else begin k:=k+1; init(k,st); end else k:=k-1; end; readln; end. {PascalZone.uv.ro}