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
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";
}
}