-Un număr natural se numeşte ABC dacă are exact a cifre, prima cifră este b şi ultima cifră este c. sa se afle daca numarul x este abc, sa se afiseze Da in caz contrar NU.
-As vrea sa mi se explice pasi pe care trebuie sa ii parcurg si de ce. Am incercat sa rezolv dar nu stiu cum sa aflu daca x este abc.
-aceasta este rezolvarea mea partiala:
#include
using namespace std;
int main() {
int a, b, c, x;
cin >> a >> b >> c >> x;
while ( x != 0 ) {
x = x / 10;
}
cout << a << " ";
while ( b > 10 ) {
b = x / 10;
}
cout << b << " ";
while ( c > 10 ) {
c = x % 10;
}
cout << c << " ";
if ????????????
cout << "DA ";
}else{
cout << "NU";
}
return 0;
}
Răspunsuri la întrebare
Buna! Ca sa verifici daca un numar este ABC trebuie sa urmezi urmatorii pasi:
1. Verific daca ultima cifra a numarului (n % 10) este egala cu c, daca nu, inseamna ca sigur nu este ABC.
2. Daca trecem de pasul 1, verificam ca prima cifra sa fie egala cu c, daca nu este putem sa spunem direct ca nu este ABC.
3. Daca am trecut si de 1, si de 2, nu mai ramane decat sa verificam ca numarul de cifre sa fie egal cu a. Daca este spunem "DA", altfel spunem "NU".
Cam asa arata codul (o sa pun si comentarii ca sa intelegi mai bine cum functioneaza):
#include<iostream>
using namespace std;
int main()
{
int a, b, c, x;
cin >> a >> b >> c >> x;
/// Pasul 1: verific ultima cifra
if(x % 10 != c) /// daca ultima cifra nu este egala cu c, atunci este clar ca nu este ABC
cout << "NU"; /// si afisam "NU"
else{ /// altfel:
/// Pasul 2: aflu prima cifra;
int cx = x; /// aici iau o copie a lui x;
while(cx > 9) /// aflu prima cifra
cx /= 10;
/// verific daca nu este egala cu b
if(cx != b)
cout << "NU";
else{ /// altfel trecem la urmatorul pas:
/// Calculam numarul de cifre:
int nrcif = 0;
while(x){
nrcif++;
x /= 10;
}
/// verific daca nrcif == a;
if(nrcif == a)
cout << "DA"; /// pentru ca respecta toate conditiile;
else
cout << "NU";
}
}
return 0;
}
Daca ai nelamuriri, ma poti intreba in comentarii!
using namespace std;
int main() {
int a, b, c, x;
cin >> a >> b >> c >> x;
int cxP = x;
while ( cxP > 9 ) {
cxP = x / 10;
}
cout << cxP << " ";
int cxU = x;
while ( cxU > 9 ) {
cxU = x % 10;
}
cout << cxU << " ";
int nrCif = 0;
while ( x != 0 ) {
nrCif++;
x = x / 10;
cout << nrCif << " ";
}
if ( cxP == b && cxU == c && nrCif == a ){
cout << "DA ";
}else{
cout << "NU";
}
return 0;
}