Răspuns :
Răspuns:
In loc de tot if-ul ala poti sa ai:
std::cout << ((a % b == 0) ? "posibil" : "imposibil") << std::endl;
Explicație:
In primul rand, rezolvarea ta nu cred ca se pliaza pe cerinta problemei.
"Putem să ne imaginăm că Mark poate să facă rost de oricâte cutii oricât de mari.". Acest lucru sugereaza ca nu citim cate cutii are, ci spunem doar daca exista posibilitatea sa transporte cadourile.
Pentru ca n cadouri pot fi transportate in n cutii si putem transporta toate cadourile intr-o fiecare cutie, cerinta ar fi banala. Deci presupun ca se cere sa verificam daca exista un numar natural [tex]i \in \{2, 3...,n_{cadouri}-1\}[/tex] astfel incat [tex]n_{cadouri}\%i=0[/tex]. Pe scurt, trebuie sa verificam daca numarul de cadouri e prim sau nu.
Rezolvare :
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
int main() {
int nr_cadouri;
cout << "Introduceti numarul de cadouri primite de Mark : ";
cin >> nr_cadouri;
bool este_prim = 1;
for (int i = 2; i * i <= nr_cadouri; i++) {
if (nr_cadouri % i == 0) este_prim = 0;
}
if (este_prim) cout << "im";
cout << "posibil";
}
Ne putem folosi de despartirea sirului de caractere "imposibil" in "im" si "posibil" pentru a evita folosirea instructiunii else. Astfel, vom afisa "im" urmat de "posibil" daca nu se poate sau doar "posibil" daca se poate.
Putem folosi si operatorul ternar pentru a evita "else" :
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
int main() {
int nr_cadouri;
cout << "Introduceti numarul de cadouri primite de Mark : ";
cin >> nr_cadouri;
bool este_prim = 1;
for (int i = 2; i * i <= nr_cadouri; i++) {
if (nr_cadouri % i == 0) este_prim = 0;
}
cout << (este_prim ? "imposibil" : "posibil");
}
Operatorul ternar evalueaza prima parte din expresie (cea din fata semnului "?". Daca e adevarata intreaga structura se evalueaza la expresia din mijloc - dintre ? si :, iar in sfarsit, daca conditia e falsa se evalueaza la expresia care urmeaza dupa caracterul :)
Programul tau se poate rescrie astfel :
#include
using namespace std;
int main() {
int a, b;
cin >> a >> b;
if ( a % b != 0 ) {
cout << "im";
}
cout << "posibil";
return 0;
}
Vă mulțumim că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Dacă aveți întrebări sau nevoie de asistență suplimentară, nu ezitați să ne contactați. Ne vedem curând și nu uitați să ne adăugați la marcaje!