Então muito bem, cidadão @rodrigob0k2, como lhe disse, foi analisando o prompt desse problema de lógica, que percebi a solução em mim mesmo,e não do suposto erro do mesmo,o tal do: "problema dos N
№s
.
E como tal,aqui está a implementação do “Problema dos casais” em JavaScript para um ambiente Node.js:
const readline = require('readline');
// Função principal para verificar a proporção de um-para-um entre homens e mulheres
function verificarProporcao(cartoes) {
let homens = 0;
let mulheres = 0;
for (let cartao of cartoes) {
if (cartao % 2 === 0) {
mulheres++;
} else {
homens++;
}
}
return homens === mulheres ? 'S' : 'N';
}
// Configuração para ler a entrada do usuário
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// Leitura dos dados
let entrada = [];
rl.on('line', (input) => {
entrada.push(input);
if (entrada.length === 2) {
const N = parseInt(entrada[0]);
const cartoes = entrada[1].split(' ').map(Number);
if (N >= 1 && N <= 1000 && cartoes.every(num => num >= 1 && num <= 500)) {
const resultado = verificarProporcao(cartoes);
console.log(resultado);
} else {
console.log('Dados inválidos');
}
rl.close();
}
});
Executando o programa:
Para executar este código, salve-o em um arquivo, por exemplo, casais.js
, e execute-o usando Node.js
com o comando: node casais.js
.
Então o Sr. inserindo as entradas do como solicita o programa,esse código deve funcionar corretamente para resolver o problema dos casais conforme descrito pelo esboço/prompt.
Para retomar a proporção de um-para-um
entre homens no caso dos cartões ímpares
e das mulheres cartões pares
, você precisa garantir que a quantidade de números ímpares seja igual à quantidade de números pares.
Aqui estão alguns exemplos de combinações que você poderia digitar, testei cinco maneiras e deu certo, espero que funcione para você:
Exemplo 1:
Entrada:
6
1 2 3 4 5 6
Explicando:
• N = 6 (6 cartões distribuídos)
• Cartões: 1, 2, 3, 4, 5, 6
•Cartões ímpares (homens): 1, 3, 5 (total 3)
• Cartões pares (mulheres): 2, 4, 6 (total 3)
• Saída: S
(proporção de um-para-um)
Exemplo 2:
Entrada:
4
1 2 3 4
Explicando:
• N = 4 (4 cartões distribuídos)
• Cartões: 1, 2, 3, 4
• Cartões ímpares (homens): 1, 3 (total 2)
• Cartões pares (mulheres): 2, 4 (total 2)
• Saída: S
(proporção de um-para-um)
Exemplo 3:
Entrada:
2
1 2
Explicando:
• N = 2 (2 cartões distribuídos)
• Cartões: 1, 2 Cartões ímpares (homens): 1 (total 1)
• Cartões pares (mulheres): 2 (total 1)
• Saída: S
(proporção de um-para-um)
Exemplo 4:
Entrada:
8
2 4 6 8 1 3 5 7
Explicando:
• N = 8 (8 cartões distribuídos)
• Cartões: 2, 4, 6, 8, 1, 3, 5, 7
• Cartões ímpares (homens): 1, 3, 5, 7 (total 4)
• Cartões pares (mulheres): 2, 4, 6, 8 (total 4)
• Saída: S
(proporção de um-para-um)
Exemplo 5 (sem proporção):
Entrada:
5
1 2 3 4 5
Explicando:
• N = 5 (5 cartões distribuídos)
• Cartões: 1, 2, 3, 4, 5
• Cartões ímpares (homens): 1, 3, 5 (total 3)
• Cartões pares (mulheres): 2, 4 (total 2)
• Saída: N
(sem proporção de um-para-um)
Então para o Sr. entender do como usar o software,vou explicar o exemplo um, note bem você que testei tanto no meu celular
via terminal Termux, quanto na plataforma Replit. No Replit é melhor, pois ao abrir o programa,surge o sinal >
, já via Node.js no Termux é o Black total.
Obs: “Para você usar o script .JS dos jogos, caso use o Node.js, você precisa salvar o script no editor Vim
ou no editor nano
pelo terminal. No meu caso que gosto mais do Vim
, é só digitar no terminal: vim casais.js
, logo dá um ENTER
e com o Vim
aberto, digite i
depois disso, bem antes de você ter copiado o script.js
do software, você cola dentro do editor, clica em ESC
, depois em :
depois, w
para salvar, dando um ENTER
, depois em q
e finalmente,ENTER
para sair do editor, depois é só chamar o script com: node casais.js
, o software será iniciado no terminal do seu sistema,SO
.”
Se você optar em rodar o código via plataforma Replit com a tecnologia Node.js
,então ao abrir,no primeiro momento= >
, você digita o № 6
em seguida digite ENTER
, no segundo momento= >
você digita: 1 2 3 4 5 6 tudo com espaço entre eles,sem vírgulas, logo dê ENTER
e a saída será: S
.
Obs: se você digitar: 1,2,3,4,5,6
com vírgulas, o software encerra com a mensagem: Dados inválidos
E se tú também digitar: 6
logo no primeiro momento,e no segundo momento digitar: 1
der espaço e logo digitar: 5
e der ENTER
a saída será: N
. Note bem o Sr. que isso é um atalho,ok?
Caso digite no primeiro momento: 5
der ENTER
e no segundo momento: 5
e der ENTER
a saída será: N
. É a condição de não proporção. E não esqueça: Para que o programa retorne ‘S’, você precisa sempre garantir que o número de cartões ímpares seja igual ao número de cartões pares.
Bom, é isso, espero ter contribuído, clareado sua lógica. Muito bom dia ao Sr. and always grateful, sucesso sempre.
