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

Sa se verifice daca un numar n este palindrom in baza 16. Numarul este introdus in baza 10.
Exemplu: numarul 111281 este palindrom in baza 16

Răspunsuri la întrebare

Răspuns de stassahul
2
#include <bits/stdc++.h>

using namespace std;

unsigned int n;
char s[10];

int main()
{

    cin >> n;

    int nr=0;

    while(n!=0)
    {
        switch(n%16)
        {
            case 1 : s[nr++]='1'; break;
            case 2 : s[nr++]='2'; break;
            case 3 : s[nr++]='3'; break;
            case 4 : s[nr++]='4'; break;
            case 5 : s[nr++]='5'; break;
            case 6 : s[nr++]='6'; break;
            case 7 : s[nr++]='7'; break;
            case 8 : s[nr++]='8'; break;
            case 9 : s[nr++]='9'; break;
            case 10 : s[nr++]='A'; break;
            case 11 : s[nr++]='B'; break;
            case 12 : s[nr++]='C'; break;
            case 13 : s[nr++]='D'; break;
            case 14 : s[nr++]='E'; break;
            case 15 : s[nr++]='F'; break;
        }
        n/=16;
    }

    for(int i=0;i<nr;i++)
        if(s[i]!=s[nr-1-i])
        {
            cout << "NU";
            return 0;
        }

    cout << "DA";

    return 0;

}

dariusaxl: cu alta instructiune in afara de switch nu se putea face?
stassahul: if
stassahul: if(n%16==1) s[nr++]=
stassahul: '1', si tot asa
stassahul: Woah, am gasit azi ceva foarte usor. Este in c++ o functie ce transforma un numar intrun string in orice baza de numeratie, deci poti sa scurtezi foarte mult programul.
stassahul: Ai programul aici : https://pastebin.com/Xw7sc9Uu
stassahul: Daca cnva sterge mesajul de mai sus, si tu inca nu ai vazut programul, iti dau un link in privat.
dariusaxl: l-am vazut, multumesc
Alte întrebări interesante