Cod sursa(job #1196981)

Utilizator vlad2309pascariu vlad vlad2309 Data 10 iunie 2014 09:00:02
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.33 kb
#include<fstream>
#include<cstring>
using namespace std;
ifstream f("cifra.in"); ofstream g("cifra.out");
int t,i,j,pow,lg,x,v[101];
char n[102];
int main()
{   for (i=1; i<=100; ++i)
    {   pow=i;
        for (j=1; j<i; ++j) pow=(pow*i)%10;
        v[i]=(v[i-1]+pow)%10;
    }
    f>>t;
    for(i=1;i<=t;++i)
    {   f>>n+1;//scanf("%s",n+1);
        lg=strlen(n+1);
        x=(lg>1 ? (n[lg-1]-'0')*10+n[lg]-'0' : n[lg]-'0');
        g<<v[x]<<'\n';//fprintf(fOut,"%d\n",v[x]);
    }
    g.close(); return 0;
}
/*
#include <cstdio>
#include <cstring>
using namespace std;

const int Loop = 100; // valoarea ultimei cifre a expresiei se repeta din 100 in 100, deci sunt necesare doar ultimele 2 cifre ale lui N
const int LgMax = 102;

void Init(int*);

int main()
{
    freopen("cifra.in","r",stdin);
    FILE* fOut = fopen("cifra.out","w");

    int v[Loop+1];
    Init(v);

    char n[LgMax];
    int T, lg, x, i=1;
    for (scanf("%d",&T); i<=T; ++i) {
        scanf("%s",n+1);
        lg=strlen(n+1);
        x=(lg>1 ? (n[lg-1]-'0')*10+n[lg]-'0' : n[lg]-'0');
        fprintf(fOut,"%d\n",v[x]);
    }

    return 0;
}

void Init(int v[])
{
    v[0]=0;
    int i, j, pow;
    for (i=1; i<=100; ++i) {
        pow=i;
        for (j=1; j<i; ++j) pow=(pow*i)%10;
        v[i]=(v[i-1]+pow)%10;
    }
}
*/