Cod sursa(job #279854)

Utilizator Bogdan_tmmTirca Bogdan Bogdan_tmm Data 13 martie 2009 00:42:26
Problema Next Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<iostream>
#include<stdio.h>
FILE *f=fopen("next.in","r"),*g=fopen("next.out","w");
void add(int A[], long long B)  
{  
	  int i;
      long long  t = B;  
      for (i=1; i<=A[0] || t; i++, t/=10)  
              A[i] = (t += A[i] ) % 10;  
      A[0] = i - 1;  
}  
long long mod(int A[], int B)  
{  
      long long i, t = 0;  
      for (i = A[0]; i > 0; i--)  
              t = (t * 10 + A[i]) % B;  
      return t;  
} 
int main()
{
	long long d,r,i,j=0;
	int n[1000005];
	char a[1000005];
	fscanf(f,"%s%lld",a,&d);
	n[0]=strlen(a);
	for(i=n[0]-1;i>=0;i--)
	{
		n[++j]=a[i]-'0';
	}
	r=mod(n,d);
	add(n,(d-r)%d);
	for(i=n[0];i;i--)
		fprintf(g,"%d",n[i]);
	return 0;
}