O Sistersinspirit.ca é o lugar ideal para obter respostas rápidas e precisas para todas as suas perguntas. Experimente a conveniência de obter respostas precisas para suas perguntas de uma comunidade dedicada de profissionais. Descubra um vasto conhecimento de profissionais em diferentes disciplinas em nossa amigável plataforma de perguntas e respostas.
Sagot :
Seguindo os exemplos mostrados, vamos limitar a interação com o usuário a captar o valor de "n" e das "n" linhas de resoluções dos programadores, não serão utilizados textos para nestas solicitações.
Ainda, como não é pedido no texto, não incluiremos uma etapa de validação de dados ou de controle/tratamento de exceções e, dessa forma, será responsabilidade do usuário preencher corretamente os dados necessários.
Sem mais delongas, vamos apresentar duas possíveis resoluções, muito semelhantes, para este exercício.
Como estamos utilizando inteiros (0 e 1) para representar as resoluções individuais (enviar ou não uma solução) dos três programadores e é necessário que pelo menos dois concordem em enviar uma solução, podemos utilizar o somatório desses três inteiros para decidir se será escrita a solução.
Portanto, se a soma das resoluções individuais for maior ou igual a 2, uma solução será escrita.
[Python 3.8]
1ª Opção:
[tex]\sf total ~= ~0\\n~ =~ int(inpu t())\\~~~~for~ i~ in~ range(n):\\~~~~~~~~ resp~ =~ str(inpu t())\\~~~~~~~~ resp~ =~ resp.split()\\~~~~~~~~ if~ int(resp[0])+int(resp[1])+int(resp[2])~ >=~ 2:\\ ~~~~~~~~~~~~total~ +=~ 1\\print(total)[/tex]
2ª Opção:
[tex]\sf total ~= ~0\\n~ =~ int(inpu t())\\~~~~for~ i~ in~ range(n):\\~~~~~~~~ resp~ =~ str(inpu t())\\~~~~~~~~ resp~ =~ map(int, resp.split())\\~~~~~~~~ if~ sum(resp)~ >=~ 2:\\ ~~~~~~~~~~~~total~ +=~ 1\\print(total)[/tex]
Explicação:
--> Perceba que os dois códigos são muito parecidos, utilizamos a variável "total" para guardar o número de problemas que serão respondidos, "n" para guardar o número de problemas e "resp" para guardar guardar as resoluções (uma por vez) dos três programadores.
--> O programa recebe cada resolução como uma string e, através do método split(), separa a string em uma lista contendo os três caracteres ('0' e '1'). Observe que, agora, estes caracteres estão indexados e, portanto, podemos acessa-los individualmente.
--> Nesse ponto, ainda temos os 1's e 0's como caracteres, não são inteiros e é aqui que as duas resoluções propostas se diferem. Na 1ª opção, utilizamos funções de casting int() para converter os 0's e 1's em inteiros e, daí, efetuamos a soma entre eles, a lista "resp" permanece inalterada. Já na 2ª opção, a lista "resp" é convertida em uma lista de inteiros utilizando a função map() e, com auxílio da função sum(), obtemos o somatório dos itens nessa lista.
--> No final do programa, ainda dentro do laço for, verificamos se o somatório das resoluções é maior ou igual a 2 com um condicional (if) e, caso positivo, incrementamos a variável "total" que será mostrada na tela ao fim do programa.
[tex]\Huge{\begin{array}{c}\Delta \tt{\!\!\!\!\!\!\,\,o}\!\!\!\!\!\!\!\!\:\,\perp\end{array}}Qualquer~d\acute{u}vida,~deixe~ um~coment\acute{a}rio[/tex]
Esperamos que tenha achado útil. Sinta-se à vontade para voltar a qualquer momento para mais respostas precisas e informações atualizadas. Obrigado por sua visita. Estamos comprometidos em fornecer as melhores informações disponíveis. Volte a qualquer momento para mais. Obrigado por visitar o Sistersinspirit.ca. Continue voltando para obter as respostas mais recentes e informações.