Challenge Incompleto - Ajuda

10/01/2021

14

O challenge

Num jogo de futebol entre amigos é muito comum que ninguém queira ser o goleiro. Para resolver esse impasse, um time decidiu utilizar o jogo "Americano".

Neste jogo, o time faz uma roda e cada um dos jogadores "joga" um número X qualquer. Após isso, o capitão do time soma todos os números jogados e obtém o resultado S. Depois, começa a contar de 1 até S apontando inicialmente para si mesmo (e falando alto e claramente "um"), depois para o jogador imediatamente a sua direita (e falando "dois") e assim por diante. O goleiro será aquele que estiver sendo apontado quando o capitão chegar a S.

Para fins de facilitar a resposta do problema, vamos considerar que o capitão está na posição 1, o jogador a sua direita está na posição 2, o jogador a direita deste está na posição 3, e assim por diante.

Você deve fazer um programa que determina qual a posição do jogador que deve ser o goleiro.

Input Format

A entrada será um array com N números, que corresempondem ao número jogado por cada um dos jogadores do time. Logo, se o array tiver tamanho 11, significa que este time tem 11 jogadores, por exemplo.

Constraints

0 < X < 11

N < 12

Output Format

Imprima na tela a posição em que está o jogodar que foi sorteado para ser o goleiro.

Sample Input 0

1 3 2 1

Sample Output 0

3
_____________
Minha tentativa:

function solucao(numeros) {
let soma = 0;
for (let i = 0; i < numeros.length; i++) {
soma += numeros[i];
continue;
}

let jogador;

soma > numeros.length ? (jogador = soma % numeros.length) : (jogador = soma);
console.log(jogador);
}

solucao([1, 3, 2, 1]);
solucao([1, 1, 1]);
solucao([5, 5, 5, 5]);

__________________________

Na solução 1 e 2 o output é correto, mas na 3 não. O problema deve ser no soma > numeros.length ? (jogador = soma % numeros.length) : (jogador = soma);, mas desde ontem que não consigo entender o que falta.
Tiago Nunes

Tiago Nunes

Responder

Post mais votado

11/01/2021

function solucao(numeros) {
	let soma = 0;
	for (let i = 0; i < numeros.length; i++) {
		soma += numeros[i];
	}

	let jogador = 0;
	if soma > numeros.length {
		jogador = (soma % numeros.length);
		/*	se o jogador for 0, houve uma divisão exata,
			então o resultado é o próprio numero de jogadores */
		if jogador = 0 { jogador = numeros.length; }
	}
	else
	{
		jogador = soma;
	}

	console.log(jogador);
}

Emerson Nascimento

Emerson Nascimento
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
consulte nossa política de privacidade.

Aceitar