Cod sursa(job #240727)

Utilizator TzutzStefan Tzutz Data 8 ianuarie 2009 13:32:26
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<stdio.h>
#include<string.h>
int main ( void ) 
{
    int put[][5] = {
    {0,0,0,0,0},
    {1,1,0,0,0},
    {6,2,4,8,0},
    {1,3,9,7,1},
    {6,4,6,0,0},
    {5,5,0,0,0},
    {6,6,0,0,0},
    {1,7,9,3,1},
    {6,8,4,2,6},
    {1,9,1,0,0}
    };
    int i,t,s,j,u,nr;
    char n[101];
    int rep[]={1,1,2,3,2,1,1,4,4,2};
    FILE * in = fopen("cifra.in","r");
    FILE * out = fopen("cifra.out","w");
    fscanf(in, "%d", &t);
    for(i = 0;i < t;i++) {
        s = 0;
        fscanf(in,"%s",&n);
        if (strlen(n) - 1)
            nr = n[strlen(n)-1] + n[strlen(n)-2]*10-528;   
        else        
            nr = n[0]-48;
        for(j = 1;j <= nr; j++) {
            u = j % 10;
            switch(u) {
                case 1:case 5:case 6:case 0: s+=u; break;
                case 4:case 9:   s+=put[u][j%2]; break;
                default:      s+=put[u][j%4]; break;
            }
            s%=10;
        }
        fprintf(out,"%d\n",s);
    }
    fclose(in);
    fclose(out);
    return 0;
}