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 | ||
| 7 7 4 | hi 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 .
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.
L’entrada és una seqüència de parells de naturals.
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.
Recordeu implementar |calcula()| recursivament. Aquesta acció no pot contenir bucles, ni cridar altres procediments.
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