Pagini recente » Cod sursa (job #3367477) | Cod sursa (job #3365766) | Atasamentele paginii Profil VladGtj | Cod sursa (job #3364965) | Cod sursa (job #3367016)
#include <iostream>
#include <fstream>
using namespace std;
char a[100000001];
char b[100000001];
bool nrEgal=false;
ifstream fin("next.in");
ofstream fout("next.out");
void impartire(char v1[],char v2[],long long divizor,int na,int &nb){
long long nrimpartire=0;
int v2Index=1;
for(int i=1;i<=na;i++){
nrimpartire=nrimpartire*10+(v1[i]-'0');
if(nrimpartire/divizor!=0){
v2[v2Index]=nrimpartire/divizor+'0';
nrimpartire=nrimpartire%divizor;
v2Index++;
nb++;
}
else if(v2Index!=1){
v2[v2Index]='0';
v2Index++;
nb++;
}
if(nrimpartire==0){
nrEgal=true;
}
}
}
void inmultire(char a[],int& na,long long b) {
long long t, i;
t=0;
i=1;
while (i<=na||t>0) {
if(a[i]!=0){
t+=b*(a[i]-48);
}
a[i]=t%10+48;
t/=10;
i++;
}
if (i-1 > na)
na = i-1;
}
int main()
{
string number;
int nrcif=1,na=0,nb=0;
long long divizor;
fin>>number;
fin>>divizor;
for(char ch : number){
a[nrcif]=ch;
nrcif++;
}
nrcif--;
impartire(a,b,divizor,nrcif,nb);
if(!nrEgal){
if(b[nb]!='9'){
b[nb]++;
}else{
for(int i=nb;b[i]=='9';i--){
b[i]='0';
if(b[i-1]!='0'){
b[i-1]++;
}
}
}
}
for(int i=1;i<=nb/2;i++){
swap(b[i],b[nb-i+1]);
}
inmultire(b,nb,divizor);
for(int i=nb;i>=1;i--){
fout<<b[i];
}
return 0;
}