P0011. Distància de Hamming P95206


Statement
 

pdf   zip

html

La distància de Hamming entre dos naturals es defineix com el nombre de posicions en les que tenen dígits diferents. Per exemple, la distància de Hamming entre 70075 i 774 és 3:

||
7   0   0   7   5
707   7   4hi ha 3 diferències
||

Feu un programa que llegeixi parells de naturals i escrigui la seva distància de Hamming juntament amb la suma dels dígits de les posicions amb dígits diferents. A l’exemple, la suma és (7 + 0) + (0 + 7) + (5 + 4) = 23.

El vostre programa ha d’implementar i utilitzar l’acció recursiva

void calcula(int a, int b, int& dist, int& sum);

que, donats dos naturals |a| i |b|, deixa al paràmetre de sortida |dist| la seva distància de Hamming, i deixa al paràmetre de sortida |sum| la suma dels dígits de les posicions amb dígits diferents.

Entrada

L’entrada és una seqüència de parells de naturals.

Sortida

Per a cada parell de l’entrada, cal escriure la seva distància de Hamming i la suma dels dígits de les posicions amb dígits diferents en una línia a part.

Observació

Recordeu implementar |calcula()| recursivament. Aquesta acció no pot contenir bucles, ni cridar altres procediments.

Public test cases
  • Input

    70075 774
    774 70075
    0 99999
    100000 0
    0 0
    1234567 2345678
    

    Output

    3 23
    3 23
    5 45
    1 1
    0 0
    7 63
    
  • Information
    Author
    Professorat de P1
    Language
    Catalan
    Other languages
    English
    Official solutions
    C++
    User solutions
    C++