Desafio de Lógica

11 respostas
D

Eu entrei na net e me deparei com o seguinte desafio que não consegui até hoje resolver:

No futebol americano, as equipes brigam por espaço em campo e fazem pontos de duas formas diferentes: através do touchdown, que pode valer 6 ou 7 pontos e através do chute ao gol, que vale 3 pontos. Quando uma equipe entra na área de touchdown do adversário, ela pontua imediatamente 6
pontos e tem direito a um chute ao gol que vale 1 ponto extra. Enfim, os placares dos jogos são montados pela possibilidade de fazer 3, 6 ou 7 pontos, o que significa que alguns placares são impossíveis de acontecer como fazer 5, 13 ou 22 pontos.

Alguem sabe algum algoritmo para determinar se é possível ou não para esta ocasião?

11 Respostas

feltraco

quanto tempo tem pra fazer…

rs rs rs …

complicado… mas é um bom exercicio…

fiquei curioso pra solução…

Kassiane_Pretti

Os placares 22 e 13 são possiveis sim…

Mas o que vc quer, a resposta?

Andre_Brito

Po cara, escolhe em qual thread você quer continuar o assunto: essa ou a que você colocou no Avançado?

D

Deixa no Avançado

RenataFA

Nossa, tô fora! Tá virando moda essa história de tópico duplicado… meu “código de ética” diz pra não responder tópicos duplicados. :?

D

o algoritmo para o que nosso amigo propos não seria esse??? Por favor me corrijam caso eu esteja errado!

//inicializar a variáveis...
  int td    = 0;
  int placar = 0;
  int FimJogo = 90; //  eu não sei o tempo de um jogo de Fotebol Americano!!!

  for (int I = 0; I <= FimJogo; I++ )  {  // enquanto não for o fim do jogo faça
    td = random.nextInt(7);               // pego um numero randomico de 0 a 6
    if (td = 3){                          // se o numero randomico for 3
      placar = placar + 3;                // então incremento a variável PLACAR
    }                                                    
    if (td = 6){                          // se o numero randomico for 6 TOUCHDOWN...
      placar = placar + 6                  // acrescento 6 pts no meu placar!!!!
      td = random.nextInt(2);             // e como tenho direito a um chute a gol...
                                          // gero um novo numero randomico
      if (td = 1){                        // e então verifico se foi gol e então
        placar = placar + 1;              // acrescento no placar!!!!!!!!!!
      }                                                   
    }                                                    
  }
Marky.Vasconcelos

devel.neto:
o algoritmo para o que nosso amigo propos não seria esse??? Por favor me corrijam caso eu esteja errado!

//inicializar a variáveis...
  int td          = 0;
  int placar    = 0;
  int FimJogo = 90; //  eu não sei o tempo de um jogo de Fotebol Americano!!!

  for (int I = 0; I <= FimJogo; I++ )  {  // enquanto não for o fim do jogo faça
    td = random.nextInt(7);                   // pego um numero randomico de 0 a 6
    if (td = 3){                                      // se o numero randomico for 3
      placar = placar + 3;                       // então incremento a variável PLACAR
    }                                                    
    if (td = 6){                                      // se o numero randomico for 6 TOUCHDOWN...
      placar = plcar + 6                          // acrescento 6 pts no meu placar!!!!
      td = random.nextInt(2);                 // e como tenho direito a um chute a gol...
                                                          // gero um novo numero randomico
      if (td = 1){                                    // e então verifico se foi gol e então
        placar = placar + 1;                     // acrescento no placar!!!!!!!!!!
      }                                                   
    }                                                    
  }

Com esse código você calcula a probabilidade do placar no final do jogo.

D

Eu devo ter interpretado errado, agora que eu re-li o desafio (um mal que nos atormenta pouco leitura…) fiquei com duvida sobre o que nosso amigo “danilodng” estava querendo. Voce queria saber quais placares não seriam possiveis, quais seriam possiveis???

Andre_Brito

Acho que ele pede a entrada do usuário e vê se é possível ocorrer aquele resultado ou não.

Como coloquei nesse link duplicado,

F
public class Desafio1 {
	int palpite = 40; // mudar o palpite aqui.

	int pontuacao;
	int pontRestante;
	boolean isPossivel = false;

	public Desafio1() {
			pontRestante = palpite;
		
			pontRestante = calculo(7,pontRestante);
			if (pontRestante == 0 || pontRestante % 3 == 0 ){
				isPossivel = true;
			}
			else {
				pontRestante = palpite;
				pontRestante = calculo(3,pontRestante);
				if (pontRestante == 0 || pontRestante % 7 == 0 || pontRestante <= (palpite / 7)){
					isPossivel = true;
				}
			}
			
			if(isPossivel){
				System.out.print("Resultado Possivel");
			}else{
				System.out.print("Resultado impossivel");
			}
	}
	
	public int calculo(int numero, int pontuacao){
		
		while(pontuacao >= numero){
			pontuacao = pontuacao % numero;
		}
		return pontuacao;
	}
	
}

Se alguem mais quiser testar, acredito que funcione.

ViniGodoy

Esse problema deve ser difícil mesmo… Levou 6 anos para alguém resolver o tópico, heheheeh.

Criado 31 de janeiro de 2008
Ultima resposta 30 de jun. de 2014
Respostas 11
Participantes 9