Pagini recente » Cod sursa (job #1074866) | Cod sursa (job #2288455) | Cod sursa (job #869494) | Cod sursa (job #2527054) | Cod sursa (job #1693715)
#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, line_length;
int *computed;
char *line;
computed = (int*) malloc(sizeof(int) * 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) {
line = (char*) malloc(sizeof(char) * 100);
fgets(line, sizeof(line), input);
line_length = strlen(line);
if (line_length == 2) {
number = line[0] - 48;
} else {
number = (line[line_length - 3] - 48) * 10 + (line[line_length - 2] - 48);
}
free(line);
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;
}