Apresente um esquema recursivo para dividir dois números inteiros usando contagens sucessivas. Por exemplo: calcular A/B sendo
e
. Sabemos que dividir A por B é o mesmo que descobrir quantas vezes B cabe em A . Assim, para dividir 18 por 4 podemos contar o no. de vezes que 4 cabe dentro de 18 .
Passo 1
Beleza, vamos lá! A questão pede para criar um esquema recursivo para dividir dois números inteiros usando contagens sucessivas. Isso significa que vamos dividir A por B, descobrindo quantas vezes o B cabe em A subtraindo B de A repetidamente. Para resolver isso, vamos usar conceitos de recursão e subtração repetida.
Passo 2
Primeiro, vamos entender o que é recursão. Recursão é quando uma função chama a si mesma para resolver partes menores de um problema maior. No nosso caso, queremos dividir A por B, então vamos subtrair B de A e chamar a função novamente com o novo valor de A até que A seja menor que B.
Passo 3
Agora, vamos definir a condição de parada da nossa recursão. Quando A for menor que B, não dá mais para subtrair B de A, então a divisão terminou. Nesse ponto, a quantidade de subtrações que fizemos é o resultado da divisão.
Passo 4
Vamos criar a função recursiva. Vamos chamar de
dividir
. Ela receberá dois números inteiros, A e B, e retornará quantas vezes B cabe em A.def dividir(A, B):
if A < B:
return 0
else:
return 1 + dividir(A - B, B)
Passo 5
Vamos testar com o exemplo dado: A = 18 e B = 4.
dividir(18, 4)
chamadividir(14, 4)
→ contagem = 1dividir(14, 4)
chamadividir(10, 4)
→ contagem = 2dividir(10, 4)
chamadividir(6, 4)
→ contagem = 3dividir(6, 4)
chamadividir(2, 4)
→ contagem = 4dividir(2, 4)
retorna 0 porque 2 < 4
Somando tudo, temos 4 contagens.
Resposta
Usando o esquema recursivo, 18 dividido por 4 dá 4 porque 4 cabe quatro vezes em 18.