Pagini recente » Cod sursa (job #1883592) | Cod sursa (job #1724549) | Cod sursa (job #1680356) | Istoria paginii runda/simulare-cartita-11 | Cod sursa (job #1693732)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int last_power_of(int number);
int main() {
FILE *input, *output;
int index, size, previous, last, number, length;
int *computed;
char *line;
computed = (int*) malloc(sizeof(int) * 100);
line = (char*) malloc(sizeof(char) * 100);
computed[0] = 0;
for (index = 1; index < 100; index += 1) {
computed[index] = (computed[index - 1] + last_power_of(index)) % 10;
}
input = fopen("cifra.in", "r");
output = fopen("cifra.out", "w");
fscanf(input, "%d\n", &size);
for (index = 0; index < size; index += 1) {
fscanf(input, "%s", line);
length = strlen(line);
if (length == 1) {
number = line[length - 1] - 48;
} else {
number = (line[length - 2] - 48) * 10 + line[length - 1] - 48;
}
fprintf(output, "%d\n", computed[number]);
}
fclose(input);
fclose(output);
return 0;
}
int last_power_of(int number) {
int reminder;
int last_number = number % 10;
switch (last_number) {
case 1:
case 5:
case 6:
return last_number;
case 2:
reminder = number % 4;
switch (reminder) {
case 1:
return 2;
case 2:
return 4;
case 3:
return 8;
case 0:
return 6;
}
case 3:
reminder = number % 4;
switch (reminder) {
case 1:
return 3;
case 2:
return 9;
case 3:
return 7;
case 0:
return 1;
}
case 4:
reminder = number % 2;
switch (reminder) {
case 1:
return 4;
case 0:
return 6;
}
case 7:
reminder = number % 4;
switch (reminder) {
case 1:
return 7;
case 2:
return 9;
case 3:
return 3;
case 0:
return 1;
}
case 8:
reminder = number % 4;
switch (reminder) {
case 1:
return 8;
case 2:
return 4;
case 3:
return 2;
case 0:
return 6;
}
case 9:
reminder = number % 2;
switch (reminder) {
case 1:
return 9;
case 0:
return 1;
}
}
return 0;
}