Você está na página 1de 3

Exerccios de Recurso:

1 ) Faa uma funo recursiva que permita inverter um nmero inteiro N. Ex: 123 321. 2) Faa uma funo recursiva que permita somar os elementos de um vetor de inteiros. 3) Crie uma funo recursiva que receba um nmero inteiro positivo N e calcule o somatrio dos nmeros de 1 a N. 4) O mximo divisor comum dos inteiros x e y o maior inteiro que divisvel por x e y. Escreva uma funo recursiva mdc que retorna o mximo divisor comum de x e y. O mdc de x e y definido como segue: se y igual a 0, ento mdc(x,y) x; caso contrrio, mdc(x,y) mdc (y, x%y), onde % o operador resto. 5) Escreva uma funo recursiva que determine quantas vezes um dgito K ocorre em um nmero natural N. Por exemplo, o dgito 2 ocorre 3 vezes em 762021192. 6) A multiplicao de dois nmeros inteiros pode ser feita atravs de somas sucessivas. Proponha um algoritmo recursivo Multip_Rec(n1,n2) que calcule a multiplicao de dois inteiros. 7) O superfatorial de um nmero N definida pelo produto dos N primeiros fatoriais de N. Assim, o superfatorial de 4 sf(4) = 1! * 2! * 3! * 4! = 288. Faa uma funo recursiva que receba um nmero inteiro positivo N e retorne o superfatorial desse nmero. 8) Escreva uma funo recursiva que faa uma busca sequencial em um veto desordenado que retorna a posio da primeira ocorrncia de um elemento procurado usando uma estratgia similar a da busca binaria. Dica: Se no o elemento do meio, procure dos dois lados e retorne o menor dos ndices encontrados. Se for o elemento do meio, continue a busca apenas do lado esquerdo, retornando a posio de l se encontrar e o meio seno encontrar. 9) Dado um nmero n na base decimal, escreva uma funo recursiva que converte este nmero para binrio. 10) Um palndromo uma string que lida da mesma maneira da esquerda para a direita e da direita para a esquerda. Alguns exemplos de palndromo so radar e arara. Escreva uma funo recursiva que retorna 1 se a string armazenada no array for um palndromo e 0, caso contrrio. O mtodo deve ignorar espaos e pontuao na string. 11) Escreva uma funo recursiva que calcule a soma dos dgitos de um nmero inteiro. Por exemplo, se a entrada for 123, a sada dever ser 1+2+3 = 6.

12) Faa uma funo recursiva que permita calcular a mdia um vetor de tamanho N. 13) Escreva uma funo recursiva que dado um nmero n, gere todas as possveis combinaes com as n primeiras letras do alfabeto. Ex.: n = 3. Resposta: ABC, ACB, BAC, BCA, CAB, CBA. 14) Uma matriz maze de 0s e 1s, de 10X10, representa um labirinto no qual um viajante precisa encontrar um caminho de maze[0][0] a maze[9][9]. O viajante pode passar de um quadrado para qualquer outro adjacente na mesma fileira ou coluna, mas no pode saltar quadrados nem se movimentar na diagonal. Alm disso, o viajante no pode entrar num quadrado contendo um 1. maze[0][0] e maze[9][9] contm 0s. Escreva uma rotina recursiva que aceite este labirinto maze e imprima uma mensagem informando a inexistncia de um caminho atravs do labirinto, ou que imprima uma lista de posies representando um caminho de [0][0] a [9][9].

Exerccios de Pilhas e Filas:


15) Escreva um algoritmo que utilize uma pilha para determinar se uma expresso aritmtica bemformada, isto , se a quantidade de ( igual a quantidade de ) e se cada ( casa corretamente com um ). Ex 1: A*(B/(C+2)); Est correta, pois os parnteses esto balanceados Ex 2: A*(B/(C+2); No est correta, pois os parnteses no esto balanceados 16) Faa o exerccio 10) usando uma pilha. 17) Duas pilhas seqenciais numricas esto ordenadas crescentemente a partir do topo. Faa um algoritmo para transferir os elementos dessas pilhas para uma terceira pilha, inicialmente vazia, de modo que ela fique ordenada decrescentemente com o maior valor no topo. 18) Escreva um algoritmo para verificar se um dado item est presente em uma pilha. Em caso positivo, o algoritmo deve fornecer tambm a posio do item na pilha, considerando o topo como posio 1. A pilha deve permanecer a mesma aps a execuo do procedimento. 19) Escreva um algoritmo para inverter a ordem dos elementos de uma fila, usando uma pilha como estrutura auxiliar. 20) Escreva um algoritmo para determinar se uma string de caracteres de entrada da forma xCy, onde x uma string consistindo das letras A e B e y o inverso de x, isto se x = ABABBA o algoritmo responde sim se y = ABBABA e no caso contrrio (use uma pilha para resolver o problema). 21) Faa uma funo que receba trs filas, duas j preenchidas em ordem crescente e preencha a ltima com os valores das duas primeiras em ordem crescente.

22) Faa o exercicio 14) utilizando uma fila 23) Faa o exerccio 14) utilizando uma pilha.