Pagini recente » Cod sursa (job #2949621) | Cod sursa (job #3212997) | Cod sursa (job #980101) | Cod sursa (job #1709052) | Cod sursa (job #1318221)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int cif[10][2];
char num[101];
int teste;
int ul(int x){return x%10;}
int sum(int c, int p)
{
int s=0,i;
for(i=1;i<=c;i++)
s+=cif[i][p];
return s;
}
int main()
{
int i,j,p=0,c,s=0,ord,k;
cif[0][0] = 0; cif[0][1] = 0;
cif[1][0] = 1; cif[1][1] = 1;
cif[2][0] = 4; cif[2][1] = 6;
cif[3][0] = 7; cif[3][1] = 3;
cif[4][0] = 6; cif[4][1] = 6;
cif[5][0] = 5; cif[5][1] = 5;
cif[6][0] = 6; cif[6][1] = 6;
cif[7][0] = 3; cif[7][1] = 7;
cif[8][0] = 6; cif[8][1] = 4;
cif[9][0] = 9; cif[9][1] = 1;
freopen("cifra.in","rt",stdin);
freopen("cifra.out","wt",stdout);
scanf("%d",&teste);
for(k=0;k<teste;k++)
{
scanf("%s",num);
s=0;
p=0;
for(i=strlen(num)-1;i>=0;i--)
{
ord = strlen(num)-i-2;
c = num[i]-'0';
if((int)pow(10,ord)*c==0 && c!=0)
{
s+=sum(c,p);
s = ul(s);
p=!p;
}
else
for(j=1;j<=(int)pow(10,ord)*c;j++) /*matematic*/
{
s+=sum(9,p);
s=ul(s);
p = !p;
}
}
printf("%d\n",s);
}
return 0;
}