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

DAU COROANA!!!!!!!!!
Cerința
Se dă un număr natural n. Să se verifice dacă n conține cel puțin o cifră de 1, cel puțin o cifră 0 și nu conține alte cifre.


Date de intrare

Programul citește de la tastatură numărul n.


Date de ieșire

Programul va afișa pe ecran mesajul da dacă n conține numai cifre de 0 și 1 (cel puțin una din fiecare), sau nu în caz contrar.

Răspunsuri la întrebare

Răspuns de artur99
21

Explicație:

Noi trebuie să validăm 3 lucruri:

1. Că există cel puțin un 0

2. Că există cel puțin un 1

3. Că nu există altfel de cifre (>1)

Deci o să începem prin a ne declara un contine_0 = false și contine_1 = false, iar când o să găsim un 0 sau un 1 în cifrele numărului, o să le modificăm să fie true, astfel încât la sfârșit dacă ambele sunt true vom fi siguri că se respectă primele 2 condiții.

Apoi vom mai declara o variabilă contine_altceva = false, iar dacă găsim vreun alt număr decât cele 2, vom marca contine_altceva ca true. Astfel încât, la sfârșit dacă contine_altceva a rămas false, înseamnă că nu s-a mai găsit niciun alt număr, deci că e respectă a 3-a condiție.

Iar la sfârșit validăm că am obținut ce am vrut, adică că contine_0 e true, contine_1 e true și contine_altceva e false

Răspuns: (am atașat și poză cu codul)

#include <iostream>

using namespace std;

int main() {

   int n, c;

   bool contine_1 = false;

   bool contine_0 = false;

   bool contine_altceva = false;

   cin>>n; // Citim numărul

   while(n > 0) {

       c = n % 10; // Extragem ultima cifră (n % 10)

       if(c == 0) contine_0 = true;

       if(c == 1) contine_1 = true;

       if(c > 1) contine_altceva = true;

       n = n / 10; // Eliminăm ultima cifră din n

   }

   if(contine_0 == true && contine_1 == true && contine_altceva == false) {

       cout<<"DA";

   }

   else {

       cout<<"NU";

   }

}

Anexe:

andreeaficlenescu85: uau
Alte întrebări interesante