1168 - LED
Usando um vetor ou um mapa, o importante é mapear!
Descrição
Solução
A primeira coisa importante de reparar nesse problema é que apesar do problema envolver números, os números que podem vir na entrada vão de 1 até 10^100, o que significa que podemos receber números de até 100 dígitos, um valor que definitivamente não cabe em inteiros computacionalmente. Com isso, a categoria do nosso problema nos traz uma dica: para ler esses números, precisamos interpretá-los como strings.
A partir daí, você pode decidir se vai usar mapa ou se vai de alguma forma converter cada dígito para número e usar um vetor. Eu decidi pela segunda ideia, mas isso fica a seu critério.
#include <string.h>
#include <stdio.h>
int main(){
char V[101];
int N, resposta;
int leds[10] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};
scanf("%d\n", &N);
for(int i = 0; i < N; ++i){
scanf("%s", &V);
resposta = 0;
for(int j = 0; j < strlen(V); ++j){
resposta += leds[V[j] - '0'];
}
printf("%d leds\n", resposta);
}
return 0;
}
Last updated
Was this helpful?