Pagini recente » Cod sursa (job #2279458) | Cod sursa (job #375818) | Cod sursa (job #1606960) | Cod sursa (job #22115) | Cod sursa (job #2828841)
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
ifstream in("cifra.in");
ofstream out("cifra.out");
int main()
{
int n;
int v[11];
int sumape10=0;
for (int i=1;i<=10;i++)
{
v[i]=1;
for (int j=1;j<=i;j++)
{
v[i]=v[i]*i;
v[i]=v[i]%10;
}
sumape10+=v[i];
}
/*
for (int i=2;i<=10;i++)
{
v[i]+=v[i-1];
v[i]=v[i]%10;
}*/
int ultcifra[12];
ultcifra[0]=0;
ultcifra[1]=7;
for (int i=2;i<=11;i++)
{
ultcifra[i]+=ultcifra[i-1];
ultcifra[i]=ultcifra[i]%10;
}
in >>n;
for (int i=1;i<=n;i++)
{
int s=0;
string numar;
in >> numar;
int a = (int) numar[numar.size()-1]-48;
if (numar.size()>1)
{
numar.pop_back();
int b = (int) numar[numar.size()-1]-48;
a+=b*10;
}
for (int j=1;j<=a;j++)
{
s+=v[j%10];
s=s%10;
}
out <<s<<endl;
}
// trebuie sa fac suma doar pe ultimele 100 de numere deoarece suma pe 10 este de 49 si inmultita cu 10 da un 0 la final care nu afecteaza raspunsul
}