Pagini recente » Cod sursa (job #1046244) | Cod sursa (job #1731436) | Cod sursa (job #335861) | Cod sursa (job #118988) | Cod sursa (job #2964420)
#include <iostream>
#include <fstream>
using namespace std;
int v[1000000];
void inmultire(int A[], long long B)
{
long long T = 0;
for(int i = 1; i <= A[0]; i++)
{
T += A[i] * B;
A[i] = T % 10;
T /= 10;
}
while(T > 0)
{
A[++A[0]] = T % 10;
T /= 10;
}
}
void impartire(int A[], long long B, long long &T)
{
T = 0;
for(int i = A[0]; i >= 1; i--)
{
T = T * 10 + A[i];
A[i] = T / B;
T %= B;
}
while(A[0] > 1 && A[A[0]] == 0)
A[0]--;
}
void adunare(int A[], int B)
{
/// calculam A<--A+B
int T = B;
for(int i = 1; T > 0 && i <= A[0]; i++)
{
T += A[i];
A[i] = T % 10;
T /= 10;
}
while(T > 0)
{
A[++A[0]] = T % 10;
T /= 10;
}
}
int main()
{
ifstream cin("next.in");
ofstream cout("next.out");
long long D, T;
string s;
cin >> s;
v[0] = s.size();
for(int i = 0; i < v[0]; i++)
{
v[v[0] - i] = s[i] - '0';
}
cin >> D;
impartire(v, D, T);
if(T != 0)
adunare(v, 1);
inmultire(v, D);
for(int i = v[0]; i >= 1; i--)
cout << v[i];
return 0;
}