Spuneti daca n citit de la tastatura este format din exact doua cifre repetate (n <
2.000.000.000). !! Rezolvare fara vectori !!
n = 90990900 → DA
n = 21323232 → NU
Răspunsuri la întrebare
Răspuns:
#include<iostream>
using namespace std;
long n;
int b, a, ok;
int main()
{
a = -1;
b = -1;
ok = 0;
cin >> n;
while (n>0) {
if (a == -1) {
a = n%10;
n = n/10;
}
if (b == -1 && n%10 != a) {
b = n%10;
n = n/10;
}
if (n%10 != a && n%10 != b)
if (n != 0) {
ok = 1;
break;
}
n = n/10;
}
if (ok == 0) cout << "DA";
else cout << "NU";
return 0;
}
Explicație:
Gaseste mai intai ultima cifra (a), iar apoi gaseste urmatoarea cifra (de la sfarsit spre inceput) diferita de a (adica b). Daca alta cifra de-a lui n (n%10) e diferita si de a si de b, ok ia valoarea 1 si se afiseaza mseajul "Nu". Daca ok ramane 0, inseamna ca toate cifrele lui n sunt egale fie cu a, fie cu b si se afiseaza mesajul "Da".