Cod sursa(job #39218)

Utilizator MaGdUtZaVasile Maria-Magdalena MaGdUtZa Data 26 martie 2007 15:29:02
Problema Next Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<stdio.h>
#include<string.h>

#define dim 1001

typedef int Huge[dim];

void scrie(Huge a);

long impartire(Huge a, long b);

void conversie(char s[dim], Huge a);

void mutare(Huge a, Huge c);

int main()
{
	freopen("next.in","r",stdin);
	freopen("next.out","w",stdout);

	char s[dim];

	Huge a,c;

	long b,r;

	scanf("%s", s);

	conversie(s, a);

	scanf("%ld", &b);

	mutare(a,c);

	impartire(a,b);

	r=impartire(c,b);

	scrie(a);

	printf("%ld", r);

	return 0;
}
void conversie(char s[dim], Huge a)
{
	int i;

	a[0]=strlen(s);

	for(i=1; i<=a[0]; ++i)

		a[i]=s[a[0]-i]-'0';

	for(i=a[0]+1; i<=1000; ++i)

		a[i]=0;
}

long impartire(Huge a, long b)
{
	long r=0,i;

	for(i=a[0]; i; --i)
	{
		r=10*r+a[i];

		a[i]=r/b;

		r%=b;
	}
	while(!a[a[0]] && a[0]>1)

		--a[0];

	return r;

}
void scrie(Huge a)
{
	for(int i=a[0]; i; --i)

		printf("%d", a[i]);

	printf("\n");
}
void mutare(Huge a, Huge c)
{
	int i;

	for(i=1; i<=a[0]; ++i)

		c[i]=a[i];

	c[0]=a[0];
}