Pagini recente » Cod sursa (job #2713232) | Cod sursa (job #1022640) | Cod sursa (job #2140743) | PAGINA LUI VI$$U | Cod sursa (job #1437196)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
1->1
2->2 4 8 6
3->3 9 7 1
4->4 6
5->5
6->6
7->7 9 3 1
8->8 4 2 6
9->9 1
0->0
*/
int ultima_cifra(int x)
{
switch(x%10)
{
case 1: return 1;
case 2:
switch(x%4)
{
case 0: return 6;
case 2: return 4;
}
case 3:
switch(x%4)
{
case 1: return 3;
case 3: return 7;
}
case 4: return 6;
case 5: return 5;
case 6: return 6;
case 7:
switch(x%4)
{
case 1: return 7;
case 3: return 3;
}
case 8:
switch(x%4)
{
case 0: return 6;
case 2: return 4;
}
case 9: return 9;
case 0: return 0;
}
}
int main(void)
{
int nr_valori,i,j;
int suma;
char x[200];
FILE* f=fopen("cifra.in","rt");
FILE* g=fopen("cifra.out","wt");
fgets(x,1000,f);
nr_valori=atoi(x);
for(i=0;i<nr_valori-1;i++)
{
suma=0;
fgets(x,1000,f);
if((x[strlen(x)-3]-48)<=0)
for(j=1;j<=(x[strlen(x)-2]-48);j++)
{
suma+=ultima_cifra(j);
suma=suma%10;
}
else
for(j=1;j<=(x[strlen(x)-2]-48)+(x[strlen(x)-3]-48)*10;j++)
{
suma+=ultima_cifra(j);
suma=suma%10;
}
fprintf(g,"%d\n",suma);
}
suma=0;
fgets(x,1000,f);
if((x[strlen(x)-2]-48)>0)
for(j=1;j<=(x[strlen(x)-1]-48)+(x[strlen(x)-2]-48)*10;j++)
{
suma+=ultima_cifra(j);
suma%=10;
}
else
for(j=1;j<=(x[strlen(x)-1]-48);j++)
{
suma+=ultima_cifra(j);
suma%=10;
}
fprintf(g,"%d\n",suma);
return 0;
}