Barrejant números P78731


Statement
 

pdf   zip

thehtml

Feu un programa que escrigui totes les barreges possibles d’uns quants naturals estrictament positius i de la mateixa longitud x1, …, xn. Una barreja de dos números es defineix com el primer dígit (començant per l’esquerra) del primer número, el primer dígit del segon número, el segon dígit del primer número, el segon dígit del segon número, etc.

Entrada

L’entrada consisteix en diversos casos, cadascun amb un nombre n ≥ 1, seguit de x1, …, xn.

Sortida

Per a cada cas, escriviu totes les barreges possibles en ordre: x1 amb x1, x1 amb x2, …, x1 amb xn, x2 amb x1, x2 amb x2, …, x2 amb xn, …, xn amb xn.

Observacions

  • El vostre programa ha d’implementar i usar una acció
    void escriu_barreja(int a, int b);
    que escrigui la barreja de a i b, salt de línia inclòs. Podeu usar procediments auxiliars.
  • Segons quina sigui la vostra solució, us caldrà usar el tipus long long per no patir sobreiximents.
Public test cases
  • Input

    3
    1234
    5678
    4444
    
    1
    42
    
    2
    12345678
    87654321
    

    Output

    11223344
    15263748
    14243444
    51627384
    55667788
    54647484
    41424344
    45464748
    44444444
    4422
    1122334455667788
    1827364554637281
    8172635445362718
    8877665544332211
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++