Cod sursa(job #284016)

Utilizator DuxarFII-Stefan-Negrus Duxar Data 20 martie 2009 21:32:50
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include<fstream.h>
char x,z,y;
int numere[30001];
int rest(int x[],int nr)
	{
	int j,t=0;
	for (j=x[0];j>=1;j--)
		t=(t*10+x[j])%nr;
	return t;
	}
int zero(int x[])
	{
	int j;
	for (j=x[0];j>=0;j--)
		x[j]=0;
	return 1;
	}
int main()
{

int ss,s,uc,xn,cn,a[10][5],n[200],i,r[10]={1,1,4,4,2,1,1,4,4,2};
ifstream f("cifra.in");
ofstream g("cifra.out");
a[2][0]=6; a[3][0]=1; a[4][1]=4; a[7][0]=1; a[8][0]=8; a[9][0]=1;
a[2][1]=2; a[3][1]=3; a[4][0]=6; a[7][1]=7; a[8][1]=4; a[9][1]=9;
a[2][2]=4; a[3][2]=9;            a[7][2]=9; a[8][2]=2;
a[2][3]=8; a[3][3]=7;            a[7][3]=3; a[8][3]=6;
f>>ss;
i=0;
s=0;
zero(n);
f.get(z);
while (!f.eof())
	{
	while (z>='0'&&z<='9')
		{
		n[0]++;
		n[n[0]]=z-'0';
		y=z;
		f.get(z);
		}
	if (z<'0'||z>'9')
		if (y>='0'&&y<='9') {uc=y-'0';
			if(uc==0) cn=uc;
			else if(uc==1) cn=uc;
				else if(uc==6) cn=uc;
					else if(uc==5) cn=uc;
						else cn=a[uc][rest(n,r[uc])];
			zero(n);
			i=0;
			numere[0]++;
			numere[numere[0]]=cn;
			}

	f.get(z);
	}
int p=1;
s=0;
while (p<=numere[0])
	{
	s+=numere[p];
	s=s%10;
	g<<s<<'\n';
	p++;
	}
f.close();
g.close();
return 0;
}