Pagini recente » Cod sursa (job #451545) | Cod sursa (job #1699892) | Cod sursa (job #214047) | Cod sursa (job #342813) | Cod sursa (job #535949)
Cod sursa(job #535949)
#include<fstream>
#define dmax 1000010
using namespace std;
int a[dmax];
long long d,rest;
void citire()
{
int i;
char s[dmax];
ifstream fin("next.in");
fin.get(s,dmax); fin.get();
a[0] = strlen(s);
for (i=0; i<a[0]; i++)
a[a[0] - i] = s[i] - '0';
fin>>d;
fin.close();
}
void impartire()
{
int i;
for (i=a[0]; i>=1; i--)
{
if (a[i] % d != 0)
if (i-1 != 0)
a[i-1] = (a[i] % d) * 10 + a[i-1]; else
rest = a[i] % d;
a[i] = a[i] % 10;
}
}
void adunare()
{
int i;
if (rest != 0)
{
a[1] += d - rest;
for (i=1; i<=a[0]; i++)
if (a[i] > 9)
{
a[i+1] += a[i] / 10;
a[i] = a[i] % 10;
} else
break;
if (a[a[0] + 1] != 0)
a[0]++;
}
}
void afisare()
{
int i;
ofstream fout("next.out");
for (i=a[0]; i>=1; i--)
fout<<a[i];
fout.close();
}
int main()
{
citire();
impartire();
adunare();
afisare();
return 0;
}