Pagini recente » Cod sursa (job #904650) | Cod sursa (job #265082) | Cod sursa (job #1920188) | Cod sursa (job #587561) | Cod sursa (job #744605)
Cod sursa(job #744605)
#include <iostream>
#include <fstream>
#include <cstring>
#include <cstdlib>
using namespace std;
ifstream in("next.in");
ofstream out("next.out");
char a[1111111];
long long b[1111111];
int lung,lung2;
long long d;
void imparte()
{
int i;
long long t=0;
lung2=-1;
for(i=lung;i;--i)
{
t*=10;
t+=a[i];
b[i]=t/d;
if(b[i]!=0 && lung2==-1)
{
lung2=i;
}
t%=d;
}
if(t==0)
{
for(i=lung;i;--i)
{
out<<(int)a[i];
}
exit(0);
}
}
void plusplus()
{
int i;
b[1]++;
for(i=1;i<=lung2;++i)
{
b[i+1]+=b[i]/10;
b[i]%=10;
}
if(b[lung2+1]!=0)
{
lung2++;
}
}
void inmulteste()
{
int i;
long long t=0;
for(i=1;i<=lung2;++i)
{
b[i]*=d;
b[i]+=t;
t=b[i]/10;
b[i]%=10;
}
while(t)
{
lung2++;
b[lung2]=t%10;
t/=10;
}
}
int main()
{
int l,i,aux;
in.getline(a+1,1111111);
in>>d;
lung=strlen(a+1);
l=lung/2;
for(i=1;i<=lung;++i)
{
a[i]-='0';
}
for(i=1;i<=l;++i)
{
aux=a[i];
a[i]=a[lung-i+1];
a[lung-i+1]=aux;
}
imparte();
plusplus();
inmulteste();
for(i=lung2;i;--i)
{
out<<(int)b[i];
}
return 0;
}