Cod sursa(job #224618)

Utilizator daniel.dumitranDaniel Dumitran daniel.dumitran Data 30 noiembrie 2008 06:22:42
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
#include <string.h>

int last_digit(int a, int b) {
  b %= 4;
  if (!b) b = 4;
  int prod = 1;
  for (int i = 0; i < b; ++i)
    prod = (prod * a) % 10;
  return prod;
}

int main() {
  FILE *f, *g;

  int digit[128];
  char buffer[128];
  int t, n;

  digit[0] = 0;
  for (int i = 1; i < 100; ++i) {
    digit[i] = (digit[i - 1] + last_digit(i % 10, i)) % 10;
    //    printf("%d", digit[i]);
  }
  //  printf("\n");

  f = fopen("cifra.in", "rt");
  g = fopen("cifra.out", "wt");
  fscanf(f, "%d", &t);
  for (int i = 0; i < t; ++i) {
    fscanf(f, "%s", buffer);
    
    char *no = (strlen(buffer) >= 2) ? buffer + (strlen(buffer) - 2) : buffer;
    sscanf(no, "%d", & n);
    fprintf(g, "%d\n", digit[n % 100]);
  }

  fclose(f);
  fclose(g);
  return 0;
}