Cod sursa(job #284079)

Utilizator DuxarFII-Stefan-Negrus Duxar Data 20 martie 2009 22:49:37
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.29 kb
#include<fstream.h>
char x,z,y;
int numere[3001];
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;
int pp[100];
for (i=1;i<=100;i++)
	{
	uc=i%10;
	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][i%r[uc]];
	pp[i]=cn;
	}
	int j;
for (i=1;i<=100;i++)
	{
	for (j=i;j<=i;j++)
		{
		s+=pp[j];
		s=s%10;}
	numere[i]=s;
	}
char oq; int nr;
f.get(z);
while (!f.eof())
	{
	nr=0;
	while (z>='0'&&z<='9')
		{
		n[0]++;
		n[n[0]]=z-'0';
		oq=y;
		y=z;
		f.get(z);
		}
	if (y>='0'&&y<='9'&&oq>='0'&&oq<='9') {nr=10*(y-'0'); nr=nr+(oq-'0');}
	if (y>='0'&&y<='9')
		if (oq>'9'||oq<'0') nr=y-'0';
	g<<numere[nr]<<'\n';
	f.get(z);
	oq=' ';
	y=' ';
	}
f.close();
g.close();
return 0;
}