Questões de Concurso
Sobre recursividade em algoritmos e estrutura de dados
Foram encontradas 84 questões
Para que a função percorra todos os comentários e suas respectivas respostas, aumentando a indentação a cada nível, a lacuna I deve ser corretamente preenchida com
function X (n,m : INTEGER) : INTEGER;
BEGIN IF (n = m) or (m=0) thenX: =1 elseX:=X(n-1,m+Xn-1m-1) END;
Qual o valor de X(5,3)?
Considerando o funcionamento da pilha de execução (call stack) e o conceito de recursividade, qual será a saída do programa ao ser executado?
( ) O comando for é um exemplo de estrutura de repetição que executa um bloco de código várias vezes, dependendo de uma condição.
( ) Em recursividade, não é necessário definir um caso-base, pois a função se encerra automaticamente após chamadas sucessivas.
( ) O comando if-else permite que diferentes blocos de código sejam executados dependendo de uma condição booleana.
( ) Uma função recursiva pode ser reescrita utilizando loops equivalentes, sem alterar o resultado final do programa.
O código em Python, a seguir, tem como objetivo calcular, recursivamente, o n-ésimo número de Fibonacci. Esse código é extremamente ineficiente, pois recalcula o mesmo valor várias vezes. Por exemplo, para calcular fib(5) são necessários os valores de fib(4) e fib(3). Entretanto, fib(4) também chama recursivamente fib(3).
Considerando a execução do código apresentado para n = 5, assinale a alternativa que representa CORRETAMENTE o número de chamadas de fib(5), fib(4), fib(3), fib(2) e fib(1), nessa ordem.
A técnica de otimização mais adequada para reduzir drasticamente o tempo de execução, sem alterar a natureza recursiva do algoritmo é
Examine o pseudocódigo a seguir:


Considerando uma execução correta do algoritmo, o total de chamadas à função “Fib” realizadas pelo algoritmo, caso o usuário informe o valor “5” para a variável “num”, é:
Analise o pseudocódigo a seguir:

Considerando uma execução correta do algoritmo, o total de chamadas à função “Fatorial” realizadas pelo algoritmo, caso o usuário informe o valor “5” para a variável “num”, é:
I. Algoritmos recursivos são aqueles que se definem em termos de si mesmos, exigindo uma condição base para evitar chamadas infinitas.
II. A complexidade de tempo de um algoritmo refere-se exclusivamente ao número de passos necessários para executar o código, desconsiderando a entrada do problema.
III. Um algoritmo pode ser implementado em diferentes linguagens de programação, desde que sua lógica seja preservada.
Está correto o que se afirma em:
A a recursividade são conceitos fundamentais na programação. Analise o seguinte código em JavaScript e marque a alternativa que apresenta a saída da console.

Considere os dois pseudocódigos recursivos apresentados a seguir:
Código 01
função fibonacci(n: inteiro) -> inteiro:
se n <= 1 então
retornar n
senão
retornar fibonacci(n-1) + fibonacci(n-2)
fim se
Código 02
função fatorial(n: inteiro) -> inteiro:
se n <= 1 então
retornar 1
senão
retornar n * fatorial(n-1)
fim se
A partir da análise dos códigos apresentados, assinale a alternativa que apresenta a principal diferença entre os pseudocódigos recursivos 1 e 2 em termos de seu propósito e operação.
Considere a seguinte função recursiva em pseudocódigo:
função fatorial(n: inteiro) -> inteiro:
se n = 0 ou n = 1 então
retornar 1
senão
retornar n * fatorial(n - 1)
fim se
Com base na análise da função, assinale a alternativa que apresenta o resultado da chamada da função fatorial(5).