Lista de Exercícios sobre Recursão

Embed Size (px)

Citation preview

  • 7/26/2019 Lista de Exerccios sobre Recurso

    1/6

    UNIVERSIDADE FEDERAL DE UBERLNDIA

    Lista de exerccios de programao em linguagem C

    Exerccios: Recurso

    1) Faa uma funo recursiva que calcule e retorne o fatorial de um nmero inteiro N.

    2) Faa uma funo recursiva que calcule e retorne o N-simo termo da sequncia

    Fibonacci. Alguns nmeros desta sequncia so: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89...

    3) Faa uma funo recursiva que permita inverter um nmero inteiro N. Ex: 123 - 321

    4) Faa uma funo recursiva que permita somar os elementos de um vetor deinteiros.

    5) Crie uma funo recursiva que receba um nmero inteiro positivo N e calcule osomatrio dos nmeros de 1 a N.

    6) Crie um programa em C, que contenha uma funo recursiva que receba doisinteiros positivos k e n e calcule kn. Utilize apenas multiplicaes. O programa principaldeve solicitar ao usurio os valores de k e n e imprimir o resultado da chamada dafuno.

    7) Crie um programa em C que receba um vetor de nmeros reais com 100 elementos.Escreva uma funo recursiva que inverta ordem dos elementos presentes no vetor.

    8) O mximo divisor comum dos inteiros x e y o maior inteiro que divisvel por x ey. Escreva uma funo recursiva mdc em C, que retorna o mximo divisor comum de xe y. O mdc de x e y definido como segue: se y igual a 0, ento mdc(x,y) x; casocontrrio, mdc(x,y) mdc (y, x%y), onde % o operador resto.

    9) Crie uma funo recursiva que receba um nmero inteiro positivo N e calcule osomatrio dos nmeros de 1 a N.

    10) Escreva uma funo recursiva que determine quantas vezes um dgito K ocorreem um nmero natural N. Por exemplo, o dgito 2 ocorre 3 vezes em 762021192.

    11) 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.

    12) Faa uma funo recursiva que receba um nmero inteiro positivo N e imprimatodos os nmeros naturais de 0 at N em ordem crescente.

    13) Faa uma funo recursiva que receba um nmero inteiro positivo N e imprima

    todos os nmeros naturais de 0 at N em ordem decrescente.

  • 7/26/2019 Lista de Exerccios sobre Recurso

    2/6

    14) Faa uma funo recursiva que receba um nmero inteiro positivo par N e imprimatodos os nmeros pares de 0 at N em ordem crescente.

    15) Faa uma funo recursiva que receba um nmero inteiro positivo par N e imprimatodos os nmeros pares de 0 at N em ordem decrescente.

    16) A funo fatorial duplo definida como o produto de todos os nmeros naturaismpares de 1 at algum nmero natural mpar N.Assim, o fatorial duplo de 5 5!! = 1 * 3 * 5 = 15Faa uma funo recursiva que receba um nmero inteiro positivo impar N e retorne ofatorial duplo desse nmero.

    17) O fatorial qudruplo de um nmero N dado por

    Faa uma funo recursiva que receba um nmero inteiro positivo N e retorne ofatorial qudruplo desse nmero.

    18) O superfatorial de um nmero N definida pelo produto dos N primeiros fatoriaisde N. Assim, o superfatorial de 4 sf(4) = 1! * 2! * 3! * 4! = 288Faa uma funo recursiva que receba um nmero inteiro positivo N e retorne osuperfatorial desse nmero.

    19) O hiperfatorial de um nmero N, escrito H(n), definido por

    Faa uma funo recursiva que receba um nmero inteiro positivo N e retorne ohiperfatorial desse nmero.

    20) Um fatorial exponencial um inteiro positivo N elevado potncia de N-1, que porsua vez elevado potncia de N-2 e assim em diante. Ou seja,

    Faa uma funo recursiva que receba um nmero inteiro positivo N e retorne ofatorial exponencial desse nmero.

    21) Os nmeros tribonacci so definidos pela seguinte recurso

    Faa uma funo recursiva que receba um nmero N e retorne o N-simo termo dasequncia de tribonacci.

  • 7/26/2019 Lista de Exerccios sobre Recurso

    3/6

  • 7/26/2019 Lista de Exerccios sobre Recurso

    4/6

    27)Desenvolva algoritmos recursivos para cada um dos seguintes problemas:

    a)Impresso de um nmero natural em base binaria

    b)Multiplicao de dois nmeros naturais atravs de somas consecutivas.

    c)Inverso de uma string.

    d)Gerador da sequencia:

    (a) F(1)=1(b) F(2)=2

    (c) F(n)= 2*F(n-1)+3*F(n-2)

  • 7/26/2019 Lista de Exerccios sobre Recurso

    5/6

    Faa uma funo recursiva em C para computar a funo de Ackerman.

    31) Escreva, usando a linguagem C, uma funo recursiva, SomaSerie(i,j,k: inteiro):inteiro, que devolva a soma da srie de valores do intervalo [i,j], com incremento k.

    32) Faa uma funo recursiva, em linguagem C, que calcule o valor da srie Sdescrita a seguir para um valor n>0 a ser fornecido como parmetro para a mesma.

    Escreva uma funo recursiva em C que exibe todos os elementos em um array deinteiros, separados por espao.

    33) Crie um programa em C, que contenha uma funo recursiva para encontrar omenor elemento em um vetor. A leitura dos elementos do vetor e impresso do menorelemento devem ser feitas no programa principal.

    34) Escreva, usando a linguagem C, uma funo recursiva, ImprimeSerie(i,j,k: inteiro),que imprime na tela a srie de valores do intervalo [i,j], com incremento k.

    35) Dado um nmero n na base decimal, escreva uma funo recursiva em C queconverte este nmero para binrio.

    36) Um palndromo uma string que lida da mesma maneira da esquerda para adireita e da direita para a esquerda. Alguns exemplos de palndromo so radar e abola da loba (se os espaos forem ignorados) Escreva uma funo recursiva queretorna 1 se a string armazenada no array for um palndromo e 0, caso contrrio. Omtodo deve ignorar espaos e pontuao na string.

    37) Uma matriz maze de 0s e 1s, de 10X10, representa um labirinto no qual umviajanteprecisa 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 podesaltar quadrados nem se movimentar na diagonal. Alm disso, o viajante no podeentrar num quadrado contendo um 1. maze[0][0] e maze[9][9] contm 0s. Escreva umarotina recursiva que aceite este labirinto maze e imprima uma mensagem informando ainexistncia de um caminho atravs do labirinto, ou que imprima uma lista de posiesrepresentando um caminho de [0][0] a [9][9].

    38) Escreva uma funo recursiva que calcule a soma de dois nmeros naturais,atravs de incrementos sucessivos (Ex.: 3 + 2 = ++(++3)).

    39) Escreva uma funo recursiva que calcule a multiplicao de dois nmerosnaturais, atravs de incrementos sucessivos

    40) Escreva uma funo recursiva que calcule a sequncia dada por:

  • 7/26/2019 Lista de Exerccios sobre Recurso

    6/6

    F(1) = 1F(2) = 2F(n) = 2 * F(n-1) + 3 * F(n-2).

    41) Escreva uma funo recursiva que dado um nmero n, gere todas as possveiscombinaes com as n primeiras letrasdo alfabeto. Ex.: n = 3. Resposta: ABC, ACB, BAC, BCA, CAB, CBA

    42) Escreva uma funo recursiva que gere todas as possveis combinaes para umjogo da MegaSena com 6 dezenas

    43) Uma sequncia de Fibonacci generalizada, de f0 a f1 definida como fibg(f0, f1,0), fibg(f0, f1, 1), fibg(f0, f1, 2), ..., onde:fibg(f0, f1, 0) = f0fibg(f0, f1, 1) = f1fibg(f0, f1, n) = fibg(f0, f1, n-1) + fibg(f0, f1, n-2), se n > 1.Escreva uma funo recursiva em C para calcular fibg(f0, f1, n).

    44) Escreva uma funo recursiva que calcule a soma dos primeiros n cubos:S(n) = 13 + 23+ ... + n3

    45) Escreva uma funo recursiva que calcule a soma dos dgitos de um nmerointeiro. Por exemplo, se a entrada for 123, a sada dever ser 1+2+3 = 6.

    46) Faa uma funo recursiva que permita calcular a mdia um vetor de tamanho N.