Cod sursa(job #1312105)

Utilizator savigunFeleaga Dragos-George savigun Data 8 ianuarie 2015 21:46:29
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.38 kb
#include <iostream>
#include <fstream>
using namespace std;

long int v[100000000];

int res(int n)
{
    int rez, m, k;
    m=n%10;
    if(m==1) rez=1;
    else
    if(m==0) rez=0;
    else
    if(m==2)
    {
    k=n%4;
    if(k==1) rez=2; else
    if(k==2) rez=4; else
    if(k==3) rez=8; else
    if(k==0) rez=6;
    }
    else
    if(m==3)
    {
    k=n%4;
    if(k==1) rez=3; else
    if(k==2) rez=9; else
    if(k==3) rez=7; else
    if(k==0) rez=1;
    }
    else
    if(m==4)
    {
    k=n%2;
    if(k==1) rez=4; else
    if(k==0) rez=6;
    }
    else
    if(m==5) rez=5;
    else
    if(m==6) rez=6;
    else
    if(m==7)
    {
    k=n%4;
    if(k==1) rez=7; else
    if(k==2) rez=9; else
    if(k==3) rez=3; else
    if(k==0) rez=1;
    }
    else
    if(m==8)
    {
    k=n%4;
    if(k==1) rez=8; else
    if(k==2) rez=4; else
    if(k==3) rez=2; else
    if(k==0) rez=6;
    }
    else
    if(m==9)
    {
    k=n%2;
    if(k==1) rez=9; else
    if(k==0) rez=1;
    }
    v[n]=rez;
return rez;
}


int main()
{

ifstream in("cifra.in");
ofstream out("cifra.out");

long int n, t, i, j, s;

in>>t;

for(i=1;i<=t;i++)
{
    in>>n;
    s=0;
    for(j=1;j<=n;j++)
    {
        if(v[j]!=0) s=s+v[j];
        else
            s=s+res(j);
    }
    out<<s%10<<"\n";
}

in.close();
out.close();
    return 0;
}