Buscar

Algoritmo para o problema 1168 do URI ONLINE JUDGE

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

#include <stdio.h>
#include <string.h>
/**
	Autor : Fabrício de Medeiros Neto
	sobre a questão : Foi uma questão dificil, mas com muito esforço consegui chegar a doideira.
	email : fabricio221995@hotmail.com
**/
//função para somar os leds
int somaLeds(int *CaracToInt){
	int i,soma1 = 0,j;
	int ledsSoltos[10] = {2,5,5,4,5,6,3,7,6,6}; //quantidade de leds para formar um led inteiro
	int LedsInteiros[10] = {1,2,3,4,5,6,7,8,9,0};//leds inteiros
	//relaciona cada Led Inteiro aos seus respectivos leds solto e faz a soma dos leds soltos
	for(j = 0; j < 10; j++){
		if(*CaracToInt == LedsInteiros[j]){ 
			soma1 += ledsSoltos[j];
			break;
		}
	}
	
	return soma1; 
}
int main(){
	int casosTestes,tamanho,i,soma = 0,soma1,converter;
	int CaracToInt[10000]; //vetor para receber a conversão de caracter para inteiro
 	char numeroLeds[10000]; //numero de leds;
 	FILE *pf;
 	
 	pf = fopen("Log.txt","a+");
 	
 	if(pf == NULL){
 		printf("Falha ao criar o arquivo\n");
	 }else{
	 	printf("Arquivo criado/atualizado com sucesso\n");
	 }
	
	printf("Casos testes que voce quer?\n");
	scanf("%d",&casosTestes);
	
	//onde a mágica começa.
	while(casosTestes--){
		printf("Digite a quantidade de leds\n");
		scanf("%s",&numeroLeds);
		
		tamanho = strlen(numeroLeds); //tira o tamanho do caracter.
		
		for(i = 0; i < tamanho; i++){
			converter = (numeroLeds[i] - 48); //converter carac por carac e converter para inteiro. 
			CaracToInt[i] = converter; //passa o inteiro convertido para um vetor.
			soma1 = somaLeds(&CaracToInt[i]); // chama a função que relaciona o LED INTEIRO ao seu LED SOLTO.
			soma += soma1; //soma o retorno que vem da função.
		}
	
		printf("Soma dos leds %s : %d\n\n",numeroLeds,soma);
		fprintf(pf,"\n\n######################\n\nSoma dos leds %s : %d\n\n######################\n\n",numeroLeds,soma);
		
		//zerando as variaveis,caso for fazer mais de uma vez.
		soma1 = 0;
		soma = 0;
		tamanho = 0;	
	}
	
	if(fclose(pf) == 0){
		printf("Arquivo fechado com sucesso\n",pf);
	}else{
		printf("problema ao fechar o arquivo\n");
	}
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes