Cod sursa(job #2351541)

Utilizator claudiu.gatinaFMI Claudiu Gatina claudiu.gatina Data 22 februarie 2019 15:14:27
Problema Cifra Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <iostream>
#include <fstream>

using namespace std;

int n;

int lastPow(int a, int b)
{
  int result = 1;
  for(int i = 0; i < b; ++i)
  {
    result *= a;
    result %= 10;
  }
  return result % 10;
}

int last[10][2];

void init()
{
  last[1][0] = 1; last[1][1] = 1;
  last[2][0] = 4; last[2][1] = 6;
  last[3][0] = 7; last[3][1] = 3;
  last[4][0] = 6; last[4][1] = 6;
  last[5][0] = 5; last[5][1] = 5;
  last[6][0] = 6; last[6][1] = 6;
  last[7][0] = 3; last[7][1] = 7;
  last[8][0] = 6; last[8][1] = 4;
  last[9][0] = 9; last[9][1] = 9;
}

int howMany(int i, int z)
{
  return (n - 10 * z - i) / 20 + (i + 10 * z <= n);
}

void solve()
{
  int result = 0;
  for(int i = 1; i <= 9; ++i)
  {
    result += howMany(i, 0) * last[i][0] + howMany(i, 1) * last[i][1];
    result %= 10;
  }
  cout << result << '\n';
}

int main()
{
  freopen("cifra.in", "r", stdin);
  freopen("cifra.out", "w", stdout);

  int t;
  cin >> t;
  init();
  for(int i = 0; i < t; ++i)
  {
    cin >> n;
    solve();
  }

  return 0;
}