Informatică, întrebare adresată de bia200716, 8 ani în urmă

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 de bobita25
1

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."


bia200716: multumesc mult!
bia200716: iti dau coroana cand imi apare butonul
Alte întrebări interesante