Ed
há 10 meses
Para resolver essa questão, precisamos entender como funciona a conversão de um número binário para decimal usando recursão. O código apresentado tem algumas lacunas que precisam ser preenchidas. Vamos analisar as lacunas: 1. A primeira lacuna deve ser preenchida com uma condição de parada para a recursão. Quando a posição (`pos`) for menor que 0, significa que já processamos todos os dígitos do número binário. Portanto, a condição correta seria: ```c if (pos < 0) return 0; ``` 2. A segunda e terceira lacunas devem ser preenchidas para continuar a recursão. Precisamos diminuir a posição (`pos`) e multiplicar a base (que é 2) pela potência correspondente. Assim, as lacunas podem ser preenchidas da seguinte forma: - Para a segunda lacuna, devemos passar `pos - 1` para continuar a recursão. - Para a terceira lacuna, devemos passar `exp * 2` para multiplicar a base. Portanto, as lacunas ficariam assim: ```c if (pos < 0) return 0; return (bin[pos]-48)*exp + Bin2Dec(bin, pos - 1, exp * 2); ``` Agora, se você tiver opções para preencher essas lacunas, escolha a que contém essas expressões. Se precisar de mais ajuda, é só avisar!