👤

In c++. Varog urgent!!!!


In C Varog Urgent class=

Răspuns :

#include <iostream>
#include <fstream>
using namespace std;

int main(){
ifstream fic("convert.in");
ofstream foc("convert.out");
char rezultat[20], c0='0',cA='A';
int baza,i,nr_caractere=0;
long p=1,n,cat;
fic>>n>>baza;
//cat timp puterea bazei este mai mic decat n
//mareste puterea bazei
while(p*baza<=n){
p=p*baza;
}
//cat timp n mai mare ca 0
while(n>0){
//catul impartirii lui n la puterea bazei
cat=n/p;
//daca acel cat e mai mare decat 9, trebuie litere mari
if(cat>9){
//obtine litere mari de la A incolo
rezultat[nr_caractere]=cA+(cat-10);
}
else{
//altfel obtinem tot o cifra
rezultat[nr_caractere]=c0+cat;
}
//marim nuarul de caractere
nr_caractere++;
//repetam procedura pentru restul impartirii lui n la puterea bazei
n=n%p;
//scadem puterea bazei cu o unitate
p=p/baza;
}
//acum scriem rezultatul pe caractere in fisierul de iesire
for(i=0;i<nr_caractere;i++){
foc<<rezultat[i];
}
return 0;
}