Ir para conteúdo
Fórum Script Brasil

Gabriela Cavalcante

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Tudo que Gabriela Cavalcante postou

  1. Caramba, obrigada! Vou estudar o código direitinho, para que em situações futuras eu o consiga fazer sem problema. Muito obrigada, pude entender melhor até a recursão com calda depois da sua explicação! Muito obrigada mesmo!
  2. Obrigada pela explicação, mas então... antes eu fiz algo parecido com isso, meu else tinha ficado: else return ((k%2) + 10 * (bin(k/2))); Só que agora eu queria pegar o que eu fiz e usar recursão de cauda, porque ai não é precisaria guardar a posição onde foi feita a chamada... tipo: int fatorial(int num) { if (num == 1) return num; else return num * fatorial(num - 1); } Essa é a recursão sem cauda, e com cauda ficaria: int fatorial_aux(int num, int parcial) { if (num == 1) return parcial; else return fatorial_aux((num - 1), (parcial * num)); } int fatorial_cauda(int num) { return fatorial_aux(num, 1); } Por isso tentei fazer (como tá no código que postei inicialmente) o return como "else return bin((k/2), (k%2) + (10 * r));". Caso minha explicação tenha fica confusa, posso tentar explicar melhor o que pretendia fazer com o código. Mas já te agradeço pela ajuda :)
  3. Olá! Estou com um código que "faz" a conversão de um número decimal para binário, mas ele acaba engolindo o último número que é para ser gerado... O código é o seguinte: #include <iostream> using namespace std; int bin(int k, int r) { if (k == 0) return (10 * r); else return bin((k/2), (k%2) + (10 * r)); } int main() { cout << bin(12, 0) << endl; } O problema é que se eu passo 12, ele mostrar 110, mas o correto seria 1100. Alguém poderia me sugerir algo?
×
×
  • Criar Novo...