Cerința
Se dă un număr natural în baza 16. Să se transforme acest număr în baza 10.
Date de intrare
Programul citește de la tastatură numărul n în baza 16.
Date de ieșire
Programul va afișa pe ecran numărul n transformat în baza 10.
Restricții și precizări
reprezentarea în baza 10 a numărului dat este mai mică decât 2.000.000.000
Cifrele în baza 16 sunt : 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
In C
Răspunsuri la întrebare
poate ti-a fi de folos si varianta c++
eu am generalizat conditia. Numai dupa ce am rezolvat am observat ca se da un numar natural in baza 16, adica contine numai cifre arabe. eu am considerat ca numarul dat contine toate cifrele sistemului hexazecimal de numeratie (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) Daca se doreste modificarea programului se va face, ca nu e greu
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char n[11];
cout << "introdu nr hexazecimal: ";
cin.getline(n,11);
int len=strlen(n);
unsigned long long int h=0, z=1, coef;
for (int i=len-1; i>=0; --i)
{
if (n[i]=='0') coef=0;
if (n[i]=='1') coef=1;
if (n[i]=='2') coef=2;
if (n[i]=='3') coef=3;
if (n[i]=='4') coef=4;
if (n[i]=='5') coef=5;
if (n[i]=='6') coef=6;
if (n[i]=='7') coef=7;
if (n[i]=='8') coef=8;
if (n[i]=='9') coef=9;
if (n[i]=='A') coef=10;
if (n[i]=='B') coef=11;
if (n[i]=='C') coef=12;
if (n[i]=='D') coef=13;
if (n[i]=='E') coef=14;
if (n[i]=='F') coef=15;
h=h+coef*z;
z=z*16;
}
cout << h << endl;
return 0;
}