Feu un programa que llegeixi parells de naturals i que, per a cada parell, escrigui el valor de la resta del primer menys el segon. Per exemple, 5 menys 2 fan 3.
Compte: com que els naturals que es consideren en aquest problema poden ser mooooolt llargs (milers de dígits), cal guardar-los en variables de tipus @string@.
El programa principal ja se us dóna implementat, no el canvieu:
int main() {
string x, y;
while (cin >> x >> y) cout << resta(x, y) << endl;
}
Per resoldre aquest problema, implementeu la funció
string resta(string x, string y);
que, donades dues cadenes de caràcters @x@ i @y@ que representen dos naturals, amb el valor de @x@ superior o igual al valor de @y@, retorni una cadena de caràcters que representa @x@ @y@.
Per simplificar el problema, suposeu que @x@ i @y@ tenen el mateix nombre de dígits, i que el valor de @x@ és més gran o igual que el valor de @y@. El nombre de dígits del resultat ha ser igual al nombre de dígits dels nombres originals, posant, si cal, zeros a l’esquerra.
Recordeu que un string @s@ amb @n@ caràcters @c@ es pot declarar així: @string s(n, c);@
Recordeu també que les operacions dels strings com ara @s += ’0’;@ o bé @s1 += s2;@ o bé @s = s1 + s2;@ estan prohibides.
Input
5 2 9 9 7 0 0 0 258 123 258 185 768 289 666 666 667 666 032 023 000 000 123456789123456789123456789123456789123456789 000000000000000000000000000000000000000000000 123456789123456789123456789123456789123456789 044444444444444444444444444444444444444444444 100000000000000000000000000000000000000000000 000000000000000000000000000000000000000000001 000000000000000000000000000000000000000000001 000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000001 000000000000000000000000000000000000000000001
Output
3 0 7 0 135 073 479 000 001 009 000 123456789123456789123456789123456789123456789 079012344679012344679012344679012344679012345 099999999999999999999999999999999999999999999 000000000000000000000000000000000000000000001 000000000000000000000000000000000000000000000