Informatică
sely0sell
2023-01-26 11:13:15
Cerinţa Se citește un număr b, reprezentând o bază de numerație și apoi n numere naturale, reprezentând cifrele unui număr scris în baza b. Determinați transformarea acestui număr în baza 10. Date de intrare Programul citește de la tastatură numerele b n, iar apoi n numere naturale, separate prin spaţii. Date de ieşire Programul afișează pe ecran numărul S, reprezentând valoarea cerută. Restricţii şi precizări 2 ≤ b ≤ 9 1 ≤ n ≤ 10 cele n numere citite vor fi mai mici decât b Exemplu Intrare 5 6 1 0 2 2 4 1 Ieșire 3446
Răspunsuri la întrebare
лида
2023-01-26 17:48:42

In general, cand transformi din baza b in baza 10, si presupunand ca ai o reprezentare in baza b de n cifre [latex]N_{b}=a_{0}a_{1}a_{2}.....a_{n-2}a_{n-1}[/latex] Atunci formula lui transformata este: [latex]N_{10}=a_{0}*b^{n-1}+a_{1}*b^{n-2}+a_{2}*b^{n-3}+a.....+a_{n-2}*b^{1}+a_{n-1}*b^{0}[/latex] Ca sa tii minte mai usor: indicele coeficientului+exponentul puterii bazei, trebuie sa dea intotdeauna n-1, unde n este numarul de cifre. Hai sa aplicam acum pentru exemplul tau: b=5, n=6 si [latex]N_{5}=102241[/latex] Atunci transformam dupa formula [latex]N_{10}=1*5^{5}+0*5^{4}+2*5^{3}+2*5^{2}+4*5^{1}+1*5^{0}=3125+0+2*125+2*25+4*5+1=3446[/latex] Aici este codul pentru program: #include #include using namespace std; int main(){     int i,b,n,rez=0;     cin>>b>>n;     int a[n];     for(i=0;i>a[i];     }     //pow(a,b) este a la puterea b    // vezi ca puterea este la inceput mare pentru ca citim de la stanga la dreapta    //si apoi pe masura ce i creste, exponentul scade pana la i=n-1 cand devine 0     for(i=0;i

Adăugați un răspuns