Informática, perguntado por Brun152, 9 meses atrás

Figurinhas

Raphael e Luiza são aficcionados por figurinhas de futebol. Ambos também têm o hábito de trocarem as figuras repetidas com seus amigos e certo dia pensaram em uma brincadeira diferente.

Chamaram todos os amigos e propuseram o seguinte: com as figurinhas em mãos, cada um tentava fazer uma troca com o amigo que estava mais perto seguindo a seguinte regra: cada um contava quantas figurinhas tinha. Em seguida, eles tinham que dividir as figurinhas de cada um em pilhas tal que todas as pilhas, entre ambos, tivessem o mesmo tamanho e esse fosse o maior possível. Então, cada um escolhia uma das pilhas de figurinhas do amigo para receber.

Por exemplo, se Raphael e Luiza fossem trocar as figurinhas e tivessem respectivamente 8 e 12 figurinhas, ambos dividiriam as suas quantidades em pilhas de 4 figurinhas cada pois esse seria o maior tamanho de pilha comum a ambos. Assim, Raphael teria 2 pilhas e Luiza teria 3 pilhas, cada pilha contendo 4 figurinhas. Em seguida, ambos escolheriam uma pilha do amigo para receber.

Você pode fazer um programa para ajudá-los com essa brincadeira?

Entrada:

A entrada contém uma linha com 2 inteiros n (1 <= n <= 1000) e m (1 <= m <= 1000) indicando, respectivamente, a quantidade de figurinhas que Raphael e Luiza têm para trocar.

Saída:

A saída será o tamanho máximo da pilha de figurinhas que poderia ser trocada entre dois jogadores.

Soluções para a tarefa

Respondido por dazevedoc
1

Resposta:

### Subprogramas

# chama a função 'mdc' de 'n' e 'm'

def mdc(n, m):

   # se resto da divisão de 'n'(maior) por 'm'(menor) for igual a zero

   if n % m == 0:

       # retorna m

       return m

   # senão

   else:

       # executa novamente a função mdc, porém agora mdc(m, n % m)

       return mdc(m, n % m)

### Programa Principal

# 'figurinhas' é a string de onde serão tirados os valores n e m

figurinhas = input('Quantas figurinhas Raphael e Luiza têm para trocar? ').split(' ')

# sendo 'n' o valor na primeira posição

n = int(figurinhas[0])

# e 'm' o valor na segunda posição

m = int(figurinhas[1])

# enquanto não forem informados dois números válidos o programa pede para repetir a entrada

while ((n < 1) or (1000 < n)) or ((m < 1) or (1000 < m)):

   print('Insira números válidos!')

   n, m = map(int, (input('Quantas figurinhas Raphael e Luiza têm para trocar? ').split()))

# imprime no console o resultado da função mdc(n, m)

print(mdc(n, m))

Explicação:

Deixei a explicação no próprio código, aparecendo aqui em itálico. O código em si aparece em negrito.

Tudo o que estiver em itálico pode ser deletado sem afetar em nada o código pois não tem valor no mesmo.


Brun152: Obrigado!!!!
dazevedoc: (Y)
Brun152: Você poderia me ajudar em outras questões que enviei recentemente de python? por favor
dazevedoc: Vou dar uma olhada!
Brun152: ficaria muito agradecido!
Brun152: ??
Perguntas interessantes