4) Primele două cifre pare diferite din numarul n. Citire din fişierul date.in și afișare în fișierul text date.out, separate prin spaţiu.
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("date.in");
ofstream fout("date.out");
int cnt;
int main() {
int n, rev = 0;
fin >> n;
int prev = -1;
while(n)
{
rev = rev * 10 + n % 10;
n /= 10;
}
while(rev)
{
int cif = rev % 10;
if (cif % 2 == 0 && cif != prev)
{
cnt++;
if (prev != -1)
{
fout << prev << " " << cif << endl;
break;
}
else
prev = cif;
}
rev /= 10;
}
if (cnt < 2)
fout << "Nu s-au gasit doua cifre pare diferite.";
return 0;
}
Explicație:
Variabila rev este rasturnatul lui n, pe care o folosesc pentru a gasi primele doua cifre pare diferite, deci pe primele cifre le voi duce la coada pentru a-mi usura munca.
Dupa iau fiecare cifra a rasturnatului si o verific daca e para si diferita de ultima cifra para gasita (adica prev care initial este "-1").
Dupa ce gasesc prima cifra para din rasturnat, prev va fi initializata cu acea valoare, urmand sa reiau while-ul pentru a cauta urmatoarea cifra para diferite de cea gasita.
Daca o gasesc, le afisez pe cele doua, separate prin cate un spatiu. Daca nu o gasesc pe a doua cifra para diferita de cea initiala sau daca nu gasesc nicio cifra para in numar, se afiseaza "Nu s-au gasit doua cifre pare diferite."