Pagini recente » Cod sursa (job #271266) | Cod sursa (job #158200) | Cod sursa (job #1135447) | Cod sursa (job #33234) | Cod sursa (job #549336)
Cod sursa(job #549336)
#include<fstream>
#include<math.h>
#include<string>
using namespace std;
int numb[30000], k;
int reducePower(int pw, int num)
{
if(pw == 1)
return 1;
if(num == 0)
return 0;
if(num == 1)
return 1;
if(num == 5)
return 1;
if(num == 6)
return 1;
if(num == 2 || num == 3 || num == 7 || num == 8)
{
pw -= 1;
int k = pw / 8;
pw -= 4*2*k;
if(pw + 1 >= 5)
return (pw - 3);
return (pw + 1);
}
if(num == 4 || num == 9)
{
pw -= 1;
int k = pw / 4;
pw -= 2*2*k;
if(pw + 1 >= 3)
return (pw - 1);
return (pw + 1);
}
}
int main()
{
ifstream fin("cifra.in");
int counter = 0;
fin>>k;
string line;
line.reserve(101);
getline(fin, line);
ofstream fout("cifra.out");
int nowpw = 0;
for(int c = 0; c < k; c++)
{
getline(fin, line);
if(counter != 0)
{
fout<<endl;
numb[counter] += numb[counter-1];
}
if(((int)line[line.size() - 1] - 48)>= 1)
{
int n = ((int)line[line.size() - 1] - 48);
numb[counter] += pow(n, reducePower(counter+1, n));
numb[counter] %= 10;
}
fout<<numb[counter];
counter++;
}
fin.close();
fout.close();
return 0;
}