Ele sai para o terreiro e observa 20 cabeças e 56 pernas.
Quantos porcos e quantas galinhas que ele tem?
Observando o algoritmo você vai pareceber que ele trabalha por força bruta, tentando cada opção até chegar ao equilíbrio das igualdades.
Não deixe de ler a solução do Mangnun Leno neste link
Obs: este conteúdo chegou aqui graças a esta aula de Ciência da computação do MIT disponível no youtube.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# # -*- coding: UTF-8 -*- | |
# Criado em:Qui 11/Mar/2010 hs 14:50 | |
# Last Change: Qui 11 Mar 2010 14:53:27 BRT | |
# vim:ft=python:nolist:nu: | |
# Instituicao: <+nome+> | |
# Proposito do script: <+descreva+> | |
# Autor: <+seuNome+> | |
# site: <+seuSite+> | |
""" | |
Um fazendeiro tem um bando de porcos e um bando de galinhas. | |
Ele sai para o terreiro e observa 20 cabeças e 56 pernas. | |
Quantos porcos e quantas galinhas que ele tem? | |
Observando o algoritmo você vai pareceber que ele trabalha por força bruta, | |
tentando cada opção até chegar ao equilíbrio das igualdades. | |
para calcular: barnYard(cabecas,pernas) | |
""" | |
def solve(numLegs, numHeads): | |
for numChicks in range(0, numHeads + 1): | |
numPigs = numHeads - numChicks | |
totLegs = 4*numPigs + 2*numChicks | |
if totLegs == numLegs: | |
return [numPigs, numChicks] | |
return [None, None] | |
def barnYard(heads, legs): | |
pigs, chickens = solve(legs, heads) | |
if pigs == None: | |
print "There is no solution." | |
else: | |
print 'Number of pigs: ', pigs | |
print 'Number of Chickens: ', chickens | |
if __name__ == '__main__': | |
cabecas=int(raw_input("Quantas cabeças? ")) | |
pernas=int(raw_input("Quantas pernas? ")) | |
barnYard(cabecas,pernas) |