Cod sursa(job #454621)

Utilizator SuperSuper Smecher Super Data 12 mai 2010 08:17:12
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.09 kb
#include <iostream>
#include <fstream>
using namespace std;

#include<stdio.h>


int calcul(int n)
{
  int ult = n%10;
  
  int ret = 0;
  switch(ult)
  {
    case 0:
      ret = 0;
      break;
    case 1:
      ret = 1;
      break;
    case 2:
      switch (n%4)
      {
        case 1: ret = 2;
          break;
        case 2: ret = 4;
          break;
        case 3: ret = 8;
          break;
        case 0: ret = 6;
          break;
      }
      break;
    case 3:
      switch (n%4)
      {
        case 1: ret = 3;
          break;
        case 2: ret = 9;
          break;
        case 3: ret = 7;
          break;
        case 0: ret = 1;
          break;
      }
      break;
    case 4:
      switch (n%2)
      {
        case 1: ret = 4;
          break;
        case 0: ret =6;
          break;
      }
      break;
    case 5: ret =5;
      break;
    case 6: ret =6;
      break;
    case 7:
      switch (n%4)
      {
        case 1: ret = 7;
          break;
        case 2: ret = 9;
          break;
        case 3: ret = 3;
          break;
        case 0: ret = 1;
          break;
      }
      break;
    case 8:
      switch (n%4)
      {
        case 1: ret = 8;
          break;
        case 2: ret = 4;
          break;
        case 3: ret = 2;
          break;
        case 0: ret = 6;
          break;
      }
      break;
    case 9:
      switch (n%2)
      {
        case 1: ret = 9;
          break;
        case 0: ret = 1;
          break;
      }
      break;    
  }
  
  return ret;
}

int ncalcul(int n)
{
  int s = 0;
  for(int i=1;i<=n;i++)
  {
    s += calcul(i);
    if(s > 9)
      s = s%10;
  }
  return s;
}


int main()
{
  int n = 0, k = 0;
  freopen("cifra.in","r",stdin);
  freopen("cifra.out","w",stdout);
  scanf("%d",&n);
  for(int i=1;i<=n;i++)
  {
    scanf("%d",&k);
    int nr = k;
    int x = (((nr/20)%10)*4)%10;
    int y = ncalcul(nr%20);
    int z = (x+y)%10;
    printf("%d\n",z);
    //k = ncalcul(k);
    //printf("%d\n",k);
  }
  return 0;
}