Se consideră subprogramul pal, care primeşte prin intermediul primului parametru, a, un număr natural, cu minimum 2 cifre şi maximum 8 cifre, şi furnizează prin intermediul celui de-al doilea parametru, b, cel mai apropiat număr de valoarea lui a, care este palindrom. În cazul în care există 2 astfel de numere, subprogramul va returna numărul mai mic.
Exemplu: dacă a=16, atunci valoarea returnată este 11; dacă a=128, valoarea returnată este 121, iar dacă a=33, atunci se returnează 33.
Scrieţi definitia completă a subprogramului pal.
ElenaGr:
C++
Răspunsuri la întrebare
Răspuns de
1
bool este_palindrom(int n)
{
int v[8] = {0};
int i = n, k = 0;
while(i)
{
v[k] = i % 10;
i /= 10;
k++;
}
i = 0;
while(i <= k / 2)
{
if(v[i] != v[k - i - 1])
return false;
i++;
}
return true;
}
void pal(int a, int& b)
{
int v[8] = {-1}, i;
i = 0;
while(true)
{
if(este_palindrom(a - i))
{
b = a - i;
return;
}
else if(este_palindrom(a + i))
{
b = a + i;
return;
}
i++;
}
}
Alte întrebări interesante
Biologie,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă