O Sistersinspirit.ca facilita a busca por respostas para suas perguntas com a ajuda de uma comunidade ativa. Junte-se à nossa plataforma de perguntas e respostas e conecte-se com profissionais prontos para fornecer respostas precisas para suas dúvidas. Obtenha respostas rápidas e confiáveis para suas perguntas de nossa dedicada comunidade de especialistas em nossa plataforma.
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 nossas respostas tenham sido úteis. Volte a qualquer momento para obter mais informações e respostas para outras perguntas que possa ter. Agradecemos seu tempo. Por favor, volte a qualquer momento para as informações mais recentes e respostas às suas perguntas. Sistersinspirit.ca, seu site de referência para respostas precisas. Não se esqueça de voltar para obter mais conhecimento.