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
Răspuns de
19
In general, cand transformi din baza b in baza 10, si presupunand ca ai o reprezentare in baza b de n cifre
Atunci formula lui transformata este:
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
Atunci transformam dupa formula
Aici este codul pentru program:
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int i,b,n,rez=0;
cin>>b>>n;
int a[n];
for(i=0;i<n;i++){
cin>>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<n;i++){
rez+=a[i]*pow(b,n-1-i);
}
cout<<rez;
Atunci formula lui transformata este:
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
Atunci transformam dupa formula
Aici este codul pentru program:
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int i,b,n,rez=0;
cin>>b>>n;
int a[n];
for(i=0;i<n;i++){
cin>>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<n;i++){
rez+=a[i]*pow(b,n-1-i);
}
cout<<rez;
Alte întrebări interesante
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Chimie,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
using namespace std;
int main()
{
int n, b, x, sol = 0;
cin >> b >> n;
for(int i=1; i<=n; i++) { cin >> x; sol += x; sol *= b; }
cout << (sol /= b);
}