Cod sursa(job #451085)

Utilizator SuperSuper Smecher Super Data 8 mai 2010 22:55:26
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.2 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 = 4;
          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 > 10)
      s = s%10;
  }
  return s;
}


int main()
{
  //cout<<ncalcul(13);
  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);
    k = ncalcul(k);
    printf("%d\n",k);
  }
}