Pagini recente » Cod sursa (job #3124332) | Cod sursa (job #1572293) | Cod sursa (job #16395) | Cod sursa (job #619130) | Cod sursa (job #2962997)
#include <fstream>
#include <cstring>
using namespace std;
const int NMAX = 1000001;
ifstream f("next.in");
ofstream g("next.out");
unsigned long long D;
char s[NMAX];
int N[NMAX];
int Nr, cNr;
unsigned long Mod(int A[], unsigned long X)
{
int i;
unsigned long R = 0;
for(i = A[0]; i; i--)
R = (10 * R + A[i]) % X;
return R;
}
void Adunare(unsigned long long b)
{
int i = 1;
while(b)
{
b += N[i];
N[i] = b % 10;
b /= 10;
i++;
}
i--;
if(i > N[0])
{
N[0] = i;
}
}
int main()
{
f.getline(s, NMAX);
f >> D;
Nr = strlen(s);
cNr = Nr;
for(int i = 0; s[i] != 0; i++)
if(s[i] >= '0' && s[i] <= '9')N[Nr--] = s[i] - '0';
N[0] = cNr;
unsigned long long R = Mod(N, D);
D -= R;
Adunare(D);
for(int i = N[0]; i >= 1; i--)
g << N[i];
return 0;
}