Sa se scrie un program care sa se verifice daca un numar este palindrom.
Precizati tipurile de instructiuni utilizate.
Va rog,repede!!!!
rossetta:
in ce limbaj de programare?
Răspunsuri la întrebare
Răspuns de
0
bool palindrom(int n)
{int n2=0,aux;
aux=n;
do{
n2=n2*10+(aux%10);
}while(aux!=0);
if(n2==n) return true;
else return false;
}
{int n2=0,aux;
aux=n;
do{
n2=n2*10+(aux%10);
}while(aux!=0);
if(n2==n) return true;
else return false;
}
n2=n2*10+(aux%10);
}while(aux!=0);
Răspuns de
0
Varianta 1:
Rasturnam numarul si testam daca numarul este egal cu rasturnatul sau:
#include <iostream>
using namespace std;
int main() {
long long p;
cin >> p;
int cp = p, r = 0; // retinem o copie a lui p
while ( p > 0 ) { // cat timp p mai are cifre
r = r * 10 + p % 10; // alfam rasturnatul lui p
p = p / 10; // eliminam ultima cifra
}
if ( cp == r ) // comparam copia lui p cu rasturnatul lui p
cout << "DA";
else
cout << "NU";
return 0;
}
Varianta 2:
Comparam prima cifra cu ultima, apoi le eliminam si reluam cat timp avem macar doua cifre si prima cifra este egala cu ultima
#include <iostream>
using namespace std;
int main() {
long long n;
cin >> n;
long long cn = n, p = 1;
// aflam 10 la puterea nr de cifre - 1
while ( cn > 9 ) {
p = p * 10;
cn = cn / 10;
}
// cat timp avem macar doua cifre si prima cifra este egala cu ultima
while ( p > 1 && n / p == n % 10 ) {
n = n % p; // eliminam prima cifra
n = n / 10; // eliminam ultima cifra
p = p / 100; //actualizam puterea
}
if ( p <= 1 ) // daca am ajuns la o cifra sau nu mai avem cifre, numarul este palindrom
cout << "DA";
else
cout << "NU";
return 0;
}
Rasturnam numarul si testam daca numarul este egal cu rasturnatul sau:
#include <iostream>
using namespace std;
int main() {
long long p;
cin >> p;
int cp = p, r = 0; // retinem o copie a lui p
while ( p > 0 ) { // cat timp p mai are cifre
r = r * 10 + p % 10; // alfam rasturnatul lui p
p = p / 10; // eliminam ultima cifra
}
if ( cp == r ) // comparam copia lui p cu rasturnatul lui p
cout << "DA";
else
cout << "NU";
return 0;
}
Varianta 2:
Comparam prima cifra cu ultima, apoi le eliminam si reluam cat timp avem macar doua cifre si prima cifra este egala cu ultima
#include <iostream>
using namespace std;
int main() {
long long n;
cin >> n;
long long cn = n, p = 1;
// aflam 10 la puterea nr de cifre - 1
while ( cn > 9 ) {
p = p * 10;
cn = cn / 10;
}
// cat timp avem macar doua cifre si prima cifra este egala cu ultima
while ( p > 1 && n / p == n % 10 ) {
n = n % p; // eliminam prima cifra
n = n / 10; // eliminam ultima cifra
p = p / 100; //actualizam puterea
}
if ( p <= 1 ) // daca am ajuns la o cifra sau nu mai avem cifre, numarul este palindrom
cout << "DA";
else
cout << "NU";
return 0;
}
Alte întrebări interesante
Informatică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Biologie,
9 ani în urmă