Pagini recente » Cod sursa (job #1545992) | Cod sursa (job #1511589) | Cod sursa (job #1684852) | Cod sursa (job #846175) | Cod sursa (job #776025)
Cod sursa(job #776025)
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
int v[1100000],lg;
long long D;
char s[1000001];
long long imp()
{
long long r = 0;
int i;
for(i = v[0]; i; i--)
{
r = 10 * r + v[i];
v[i] = r / D;
r %= D;
}
while(!v[v[0]] && v[0] > 1) -- v[0];
return r;
}
void ad()
{
int poz = 1, r = 0;
v[1] ++;
if(v[1] == 10)
{
r = 1;
while(poz <= v[0] && r == 1)
{
r = v[poz] / 10;
v[poz] %= 10;
poz ++;
}
if(r == 1) v[++v[0]] = 1;
}
}
void inm()
{
long long t = 0;
int i;
for(i = 1; i <= v[0]; i++)
{
v[i] = v[i] * D + t;
t = v[i] / 10;
v[i] %= 10;
}
while(t)
{
v[++v[0]] = t % 10;
t /= 10;
}
}
int main()
{
freopen("next.in", "r", stdin);
freopen("next.out", "w", stdout);
int i, poz = 1;
fgets(s, 1000001, stdin);
lg = strlen(s) - 1;
v[0] = lg;
for(i = lg - 1; i >= 0; i--) v[poz ++] = s[i] - '0';
scanf("%lld", &D);
long long rez = imp();
if(rez)
{
ad(); inm();
}
for(i = v[0]; i; i--) printf("%i", v[i]);
scanf("%i", &i);
return 0;
}