Função recursiva

Função recursiva

por Vanessa Araujo Rodrigues -
Número de respostas: 5

Outra dúvida: Consegui fazer a função. Porém ela chama a regua(n-1) duas vezes, pra montar a reguaNão. Com isso, estou executando o dobro de operações. Resultado: no meu computador, n acima de 20 já demora para executar. Tentei fazer uma atribuição pra regua(n-1) mas não consegui. Alguma dica?

Em resposta à Vanessa Araujo Rodrigues

Re: Função recursiva

por José Coelho de Pina -

Resultado: no meu computador, n acima de 20 já demora para executar.

Demora quanto?

Em resposta à José Coelho de Pina

Re: Função recursiva

por Vanessa Araujo Rodrigues -

Para n = 18, 8 segundos,

n = 20, 30 segundos.

n = 22, 2 minutos e 17 segundos!!

Pensei em, de alguma maneira fazer 'meia' régua e depois juntá-las... Mas não consigo pensar em como fazer isso e atender às especificações e testes do esqueleto... perplexo

Em resposta à Vanessa Araujo Rodrigues

Re: Função recursiva

por Lucas Lehmann Coutinho -

Eu fiz algo desse tipo mas, para n=20, demora 1 minuto 8 segundos e, para n=22, demora 4 minutos 34 segundos. Então não recomendo...

Em resposta à Lucas Lehmann Coutinho

Re: Função recursiva

por Vanessa Araujo Rodrigues -

Mas você conseguiu pensar em uma maneira de chamar regua(n-1) uma só vez?

Em resposta à Vanessa Araujo Rodrigues

Re: Função recursiva

por Vanessa Araujo Rodrigues -

Consegui! 

Para n = 20, demora 30 segundos.

Usando o vizualizador do Cs Circles, notei a redução drástica do número de passos para a execução da função regua. Com duas chamadas, para n = 5, a função executa 255 passos! Com uma chamada, para n = 20, a função executa 107 passos.