Pagini recente » Cod sursa (job #1652991) | Cod sursa (job #2488986) | Cod sursa (job #492439) | Cod sursa (job #592394) | Cod sursa (job #1906574)
#include <fstream>
#include <cstring>
#define DIM 1000001
using namespace std;
int v[DIM*10],n;
long long d,r,nr,t,i,N,ok;
char a[DIM];
ifstream fin ("next.in");
ofstream fout ("next.out");
int main (){
fin>>a+1;
N = strlen (a+1);
for (i=1;i<=N;i++)
v[i] = a[i]-'0';
n = v[0] = N;
for (i=1;i<=n/2;i++)
swap (v[i],v[n-i+1]);
/*while (fin>>x){
v[++n] = x-'0';
}*/
fin>>d;
if (d == 1){
for (i=n;i>=1;i--)
fout<<v[i];
return 0;
}
// aflam restul impartirii lui n la d
for (i=n;i>=1;i--)
r = (r*10 + v[i]) % d;
nr = d-r; // pe nr il adunam cu n;
for (i=1;i<=v[0];i++){
ok = v[i]+nr;
v[i] = (v[i]+nr) % 10;
nr = ok/10;
}
while (nr != 0){
v[++v[0]] = nr%10;
nr/=10;
}
for (i=v[0];i>=1;i--)
fout<<v[i];
return 0;
}