Informatică, întrebare adresată de juny, 9 ani în urmă

Se citeste n de la tastatura. Daca n este polindrom ( n=inversul sau ), sa se afiseze prima cifra a lui, iar in caz contrar, sa se afiseze cifra maxima. ( Algoritm in C++)
Am facut algoritmul, dar nu imi afiseaza nimic, nici nu imi afiseaza durata de executie si ce imi mai afisa pana acum


ModernMind: Vrei sa iti corectam algoritmul facut de tine sau sa iti facem altul de la 0?
juny: Sa-mi faceti altul de la 0, va rog
boiustef: tousi era bn sa vedem creatia ta ....
juny: #include

using namespace std;

int main()
{
int n, c, inv, d;
cin >> n;
while ( n )
{
d=n;
c= d%10;
inv= inv*10+c;
d=d/10;
}
if ( n==inv )
cout << n%10;
else
{
int max=0;
while ( n )
{
c=n%10;
if ( c>=max )
max=c;
n= n/10;
}
cout << max;
}
return 0;
}
boiustef: while ( n )
{
d=n;
c= d%10;
inv= inv*10+c;
d=d/10;
}
acest ciclu nu e infinit ??? lucreaza pana la infinit.... valoarea lui n se schimba ?
boiustef: d se micsoreaza, apoi iar devine n si asa la infinit...
boiustef: aici tr de corectat si in rest se pare ca e bn
juny: Mersi mult!!!!
boiustef: succese!

Răspunsuri la întrebare

Răspuns de ModernMind
1

#include <iostream>

using namespace std;

int maxim;

bool numarPalindrom(int nr) {

   int nri,nrf=0;

   nri=nr;

   while(nr) {

       int c=nr%10;

       nrf=nrf*10+c;

       nr=nr/10;

       if(c>maxim) maxim=c;

   }

   if(nri==nrf)

       return true;

   return false;

}

int main()

{

   int n;

   cin>>n;

   if(numarPalindrom(n)) cout<<(n%10);

   else cout<<maxim;

   return 0;

}

Alte întrebări interesante