👤

REZOLVATI VA ROG URMATOAREA PROBLEMA IN C (SAU C++, PREFERABIL IN C):


Cerința

Se dau două numere naturale. Dacă cele două numere au acelaşi număr de cifre, să se afle pe câte poziţii aceste cifre coincid.

Date de intrare

Programul citește de la tastatură cele două numere naturale, separate prin spații.

Date de ieșire

Programul va afișa pe ecran NU dacă cele două numere nu au acelaşi număr de cifre, respectiv DA dacă au acelaşi număr de cifre. În caz afirmativ se va afişa pe rândul următor numărul poziţiilor în care cifrele celor două numere coincid.

Restricții și precizări
•cele două numere citite vor fi mai mici decât 2.000.000.000

Exemplul 1:

Intrare
2345 17825


Ieșire
NU


Explicație

Cele două numere nu au acelaşi număr de cifre.

Exemplul 2:

Intrare
102789 307786


Ieșire
DA
3


Explicație

Cele două numere au acelaşi număr de cifre, iar cifrele coincid pe trei poziţii: zeci, sute şi zeci de mii.





Răspuns :

#include <stdio.h>
 
int main() {
    int a, b;
    scanf("%d %d", &a, &b);
    int ca = a, cb = b, nrcifa = 0, nrcifb = 0;
    while(ca > 0) {
        nrcifa++;
        ca = ca / 10;
    }  
    while(cb > 0) {
        nrcifb++;
        cb = cb / 10;
    }  
    if(nrcifa != nrcifb)
      printf("NU");
    else {
      printf("DA\n");
    int nrcif = 0;
    while(a > 0) {
        if(a % 10 == b % 10)
          nrcif++;
        b = b / 10;
        a = a / 10;
    }
    printf("%d", nrcif);
    }
    return 0;
}