Cod sursa(job #475241)

Utilizator nautilusCohal Alexandru nautilus Data 6 august 2010 13:36:55
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<fstream>
#define max 1000
using namespace std;

char nr[max];
int a[max],ucc,rest;
int constanta[20]={1,4,7,6,5,6,3,6,9,0,1,6,3,6,5,6,7,4,9,0};

void transformare()
{
 long i;
	
 for (i=0; i<strlen(nr); i++)
	 a[i+1]=nr[i]-'0';
 a[0]=strlen(nr);
}


void impartire()
{
 long i;
	
 for (i=1; i<=a[0]; i++)
	 if (a[i]<20)
		 a[i+1]=a[i]*10+a[i+1]; else
		 {
		  a[i+1]=(a[i]%20)*10+a[i+1];
		  ucc=a[i]/20;
		 }
 rest=a[a[0]+1]/10;
}


ofstream fout("cifra.out");

void afisare()
{
 long i,rez;
	
 rez=(ucc*14)%10;
 for (i=0; i<rest; i++)
	 rez=(rez+constanta[i])%10;
	
 fout<<rez<<'\n';
}

void stergere()
{
 long i;
	
 for (i=1; i<=a[0]+1; i++)
	 a[i]=0;
 a[0]=0;
}

int main()
{
 long t,i;
	
 ifstream fin("cifra.in");
 fin>>t;
 for (i=1; i<=t; i++)
	 {
	  fin>>nr;
	  
	  transformare();
	  impartire();
	  afisare();
	  stergere();
	 }
	
 fin.close();
 fout.close();
 
 return 0;
}