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 :)