Exercícios: Recursão

Documentos relacionados
Exercícios: Recursão

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C

Exercícios: comandos de repetição

Exercícios: Vetores e Matrizes

1. Escreva um programa em Pascal que leia três valores inteiros e mostre-os em ordem crescente. Utilize seleção encadeada.

Estruturas de Repetição

Exercícios: Comandos de Repetição

Lista de Exercícios - Programação I (Pascal/ Python)

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

Sistemas Numéricos. Tiago Alves de Oliveira

Algoritmos e Estruturas de Dados I. Recursividade. Pedro O.S. Vaz de Melo

17. Faça um programa que escreve na tela a mesma frase 10vezes. E depois faça com que o programa mostre o número de cada linha no início e no final

Exercícios: Vetores e Matrizes

Linguagem C ESTRUTURA DE CONTROLE

a) 2 b) 3 c) 4 d) 5 e) 6

Lista de Exercícios 04 Estruturas de Dados Homogêneas - Vetores

1ª Lista de Exercícios

Exercícios (if/ if else/ if elseif else)

Álgebra Linear Computacional

Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função.

Introdução a Tecnologia da Informação

Algoritmia e Programação

Lista 4 Introdução à Programação Entregar até 07/05/2012

- no assunto colocar [ALG] PRIMEIRA PARTE

Capítulo 5: Repetições

Seqüências. George Darmiton da Cunha Cavalcanti CIn - UFPE

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

CADERNO DE EXERCÍCIOS ALGORITMOS

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo

Análise de algoritmos. Parte II

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

Disciplina: Álgebra Linear - Engenharias ], C = Basta adicionar elemento a elemento de A e B que ocupam a mesma posição na matriz.

Ficha 1 Noções de sequência e decisão em algoritmia

LISTA DE EXERCÍCIOS PARTE 1 (ESTRUTURAS SEQUENCIAIS)

XXXII Olimpíada Brasileira de Matemática GABARITO Segunda Fase

Exercícios de revisão da Linguagem C

Actividade de enriquecimento. Algoritmo da raiz quadrada

Exercícios: variáveis e expressões

2ª Lista de Exercícios

Matrizes e Sistemas Lineares. Professor: Juliano de Bem Francisco. Departamento de Matemática Universidade Federal de Santa Catarina.

Jogos com números Colocando números

Exercícios. 1. O que escreva o programa abaixo? Por que? 2. O que escreva o programa abaixo? Por que? algoritmo "foo" var a: inteiro

XXXII Olimpíada Brasileira de Matemática. GABARITO Segunda Fase

Questão 1 Exemplo de execução 1 (com N=6): Exemplo de execução 2 (com N=4):

Programação de Computadores II

PYTHON Compreensão de Listas. Introdução à Programação SI2

Expressões de sequencias

Programação de Computadores 1 Lista 2. Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP

AC05 Lista de Exercícios sobre Sequências, Condições e Repetição Em C++

Matrizes. matriz de 2 linhas e 2 colunas. matriz de 3 linhas e 3 colunas. matriz de 3 linhas e 1 coluna. matriz de 1 linha e 4 colunas.

Introdução a Linguagem C (Parte I) UFPA Sistemas de Informação. Roberto Araujo 2013

MC Teste de Mesa e Comandos Repetitivos

PROGRAMAÇÃO DE COMPUTADORES I - BCC Lista de Exercícios do Módulo 1 - Preparação para a Prova 1

Exercícios de Linguagem C

Linguagem de Programação C. Fluxo de Saída Padrão. Linguagem de Programação C. printf. Fluxo de Saída Padrão. Algoritmos e Lógica de Programação

Matemática Fascículo 05 Manoel Benedito Rodrigues

UNIVERSIDADE ESTADUAL PAULISTA Julio de Mesquita Filho" FACULDADE DE ENGENHARIA

Determinantes. Matemática Prof. Mauricio José

Universidade Federal de Mato Grosso do Sul. Lista de Exercícios 2

PHP Estruturas de repetição

Circuitos Lógicos Capítulo 2 Sistema de Numeração e Códigos

Divisibilidade Básica

Medidas de Tendência Central. Introdução Média Aritmética Moda Mediana

a 21 a a 2n... a n1 a n2... a nn

Algoritmos e Lógica de Programação. 6ª Lista de Exercícios Comandos de Repetição

Matemática Discreta. Leandro Colombi Resendo. Matemática Discreta Bacharel em Sistemas de Informações

Algoritmos & Programação

=...= 1,0 = 1,00 = 1,000...

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Polos Olímpicos de Treinamento. Aula 1. Curso de Teoria dos Números - Nível 3. Divisibilidade 1. Carlos Gustavo Moreira e Samuel Barbosa Feitosa

O Jogo da Velha Dançarina

Lista de Exercícios Critérios de Divisibilidade

2ª Lista de Exercícios

Exercícios Repetição

7 a Lista de Exercícios Assunto: Funções e passagem por referência com vetor e matriz (Tópico 7)

5. ESTRUTURA DE CONTROLE TOMADA DE DECISÕES

Representação de Circuitos Lógicos

Programação. Folha Prática 4. Lab. 4. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

Programação Dinâmica. Aplicação directa - Fibonacci

Microsoft Excel INTRODUÇÃO PARTE 1 SUMÁRIO

Universidade Federal do ABC MCTA Programação Estruturada 2018.Q3

Lista de exercícios estrutura de repetição FOR e While. 3. Criar um algoritmo que imprima a soma dos nu meros pares de 230 a 520..

Algoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz

Aula 3/4: Vetores/Matrizes e Ponteiros

Exercícios TVC2 PARTE I:

OBSERVAÇÕES: EXERCÍCIOS

Lista de Exercícios Estrutura de Repetição

PROJETO PILOTO O uso do Material Dourado como ferramenta para compreender o Sistema de Numeração Decimal-posicional.

Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 01

Definição de determinantes de primeira e segunda ordens. Seja A uma matriz quadrada. Representa-se o determinante de A por det(a) ou A.

Lista de Exercícios sobre Recursividade

BANCO DE EXERCÍCIOS - 24 HORAS

= Pontuação: A questão vale dez pontos, tem dois itens, sendo que o item A vale até três pontos, e o B vale até sete pontos.

EXERCÍCIOS DE ESTRUTURA DE REPETIÇÃO - ALGORITMOS

Transcrição:

UNIVERSIDADE FEDERAL DE UBERLÂNDIA Lista de exercícios de programação em linguagem C Exercícios: Recursão 1) Faça uma função recursiva que calcule e retorne o fatorial de um número inteiro N. 2) Faça uma função recursiva que calcule e retorne o N-ésimo termo da sequência Fibonacci. Alguns números desta sequência são: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89... 3) Faça uma função recursiva que permita inverter um número inteiro N. Ex: 123-321 4) Faça uma função recursiva que permita somar os elementos de um vetor de inteiros. 5) Crie uma função recursiva que receba um número inteiro positivo N e calcule o somatório dos números de 1 a N. 6) Crie um programa em C, que contenha uma função recursiva que receba dois inteiros positivos k e n e calcule k n. Utilize apenas multiplicações. O programa principal deve solicitar ao usuário os valores de k e n e imprimir o resultado da chamada da função. 7) Crie um programa em C que receba um vetor de números reais com 100 elementos. Escreva uma função recursiva que inverta ordem dos elementos presentes no vetor. 8) O máximo divisor comum dos inteiros x e y é o maior inteiro que é divisível por x e y. Escreva uma função recursiva mdc em C, que retorna o máximo divisor comum de x e y. O mdc de x e y é definido como segue: se y é igual a 0, então mdc(x,y) é x; caso contrário, mdc(x,y) é mdc (y, x%y), onde % é o operador resto. 9) Crie uma função recursiva que receba um número inteiro positivo N e calcule o somatório dos números de 1 a N. 10) Escreva uma função recursiva que determine quantas vezes um dígito K ocorre em um número natural N. Por exemplo, o dígito 2 ocorre 3 vezes em 762021192. 11) A multiplicação de dois números inteiros pode ser feita através de somas sucessivas. Proponha um algoritmo recursivo Multip_Rec(n1,n2) que calcule a multiplicação de dois inteiros. 12) Faça uma função recursiva que receba um número inteiro positivo N e imprima todos os números naturais de 0 até N em ordem crescente. 13) Faça uma função recursiva que receba um número inteiro positivo N e imprima todos os números naturais de 0 até N em ordem decrescente.

14) Faça uma função recursiva que receba um número inteiro positivo par N e imprima todos os números pares de 0 até N em ordem crescente. 15) Faça uma função recursiva que receba um número inteiro positivo par N e imprima todos os números pares de 0 até N em ordem decrescente. 16) A função fatorial duplo é definida como o produto de todos os números naturais ímpares de 1 até algum número natural ímpar N. Assim, o fatorial duplo de 5 é 5!! = 1 * 3 * 5 = 15 Faça uma função recursiva que receba um número inteiro positivo impar N e retorne o fatorial duplo desse número. 17) O fatorial quádruplo de um número N é dado por fatorial quádruplo desse número. 18) O superfatorial de um número N é definida pelo produto dos N primeiros fatoriais de N. Assim, o superfatorial de 4 é sf(4) = 1! * 2! * 3! * 4! = 288 superfatorial desse número. 19) O hiperfatorial de um número N, escrito H(n), é definido por hiperfatorial desse número. 20) Um fatorial exponencial é um inteiro positivo N elevado à potência de N-1, que por sua vez é elevado à potência de N-2 e assim em diante. Ou seja, fatorial exponencial desse número. 21) Os números tribonacci são definidos pela seguinte recursão Faça uma função recursiva que receba um número N e retorne o N-ésimo termo da sequência de tribonacci.

22) Os números tetranacci iniciam com quatro termos pré-determinados e a partir daí todos os demais números são obtidos pela soma dos quatro números anteriores. Os primeiros números tetranacci são: 0, 0, 0, 1, 1, 2, 4, 8, 15, 29, 56, 108, 208... Faça uma função recursiva que receba um número N e retorne o N-ésimo termo da sequência de tetranacci. 23) A sequência de Padovan é uma sequência de naturais P(n) definida pelos valores iniciais P(0) = P(1) = p(2) = 1 e a seguinte relação recursiva P(n) = P(n - 2) + P(n - 3) se n > 2 Alguns valores da sequência são: 1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12, 16, 21, 28... Faça uma função recursiva que receba um número N e retorne o N-ésimo termo da sequência de Padovan. 24) Os números de Pell são definidos pela seguinte recursão Alguns números desta sequência são: 0, 1, 2, 5, 12, 29, 70, 169, 408, 985... Faça uma função recursiva que receba um número N e retorne o N-ésimo número de Pell. 25) Os números de Catalan são definidos pela seguinte recursão Alguns números desta sequência são: 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786... Faça uma função recursiva que receba um número N e retorne o N-ésimo número de Catalan. 26) Uma palavra de Fibonacci é definida por Aqui + denota a concatenação de duas strings. Esta sequência inicia com as seguintes palavras: b, a, ab, aba, abaab, abaababa, abaababaabaab,... Faça uma função recursiva que receba um número N e retorne a N-ésima palavra de Fibonacci.

27)Desenvolva algoritmos recursivos para cada um dos seguintes problemas: a)impressão de um número natural em base binaria b)multiplicação de dois números naturais através de somas consecutivas. c)inversão 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) <=fórmula Geral Usando a formula podemos identificar que F(3)=2*F(2)+3*F(1) F(3)=4+3=7 (e)verificar se uma palavra é palíndromo (f)busca sequencial em um veto desordenado que retorna a posição da primeira ocorrência de um elemento procurado usando uma estratégia similar a da busca binaria. Dica: Se não é 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 posição de lá se encontrar e o meio senão encontrar 28) A multiplicação à Russa consiste em: a. Escrever os números A e B, que se deseja multiplicar na parte superior das colunas. b. Dividir A por 2, sucessivamente, ignorando o resto até chegar à unidade, escrever os resultados da coluna A. c. Multiplicar B por 2 tantas vezes quantas se haja dividido A por 2, escrever os resultados sucessivos na coluna B. d. Somar todos os números da coluna B que estejam ao lado de um número ímpar da coluna A. Exemplo: 27 82 A B Parcelas 27 82 82 13 164 164 6 328-3 656 656 1 1312 1312 Soma: 2214 Programar em C um algoritmo recursivo que permita fazer à multiplicação a russa de 2 entradas; 29) Implemente, usando a linguagem C, a função h definida recursivamente por: 30) A função de Acherman é definida recursivamente nos números não negativos como segue:

Faça uma função recursiva em C para computar a função de Ackerman. 31) Escreva, usando a linguagem C, uma função recursiva, SomaSerie(i,j,k: inteiro): inteiro, que devolva a soma da série de valores do intervalo [i,j], com incremento k. 32) Faça uma função recursiva, em linguagem C, que calcule o valor da série S descrita a seguir para um valor n>0 a ser fornecido como parâmetro para a mesma. Escreva uma função recursiva em C que exibe todos os elementos em um array de inteiros, separados por espaço. 33) Crie um programa em C, que contenha uma função recursiva para encontrar o menor elemento em um vetor. A leitura dos elementos do vetor e impressão do menor elemento devem ser feitas no programa principal. 34) Escreva, usando a linguagem C, uma função recursiva, ImprimeSerie(i,j,k: inteiro), que imprime na tela a série de valores do intervalo [i,j], com incremento k. 35) Dado um número n na base decimal, escreva uma função recursiva em C que converte este número para binário. 36) Um palíndromo é uma string que é lida da mesma maneira da esquerda para a direita e da direita para a esquerda. Alguns exemplos de palíndromo são radar e a bola da loba (se os espaços forem ignorados) Escreva uma função recursiva que retorna 1 se a string armazenada no array for um palíndromo e 0, caso contrário. O método deve ignorar espaços e pontuação na string. 37) 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 não pode saltar quadrados nem se movimentar na diagonal. Além disso, o viajante não pode entrar num quadrado contendo um 1. maze[0][0] e maze[9][9] contêm 0s. Escreva uma rotina recursiva que aceite este labirinto maze e imprima uma mensagem informando a inexistência de um caminho através do labirinto, ou que imprima uma lista de posições representando um caminho de [0][0] a [9][9]. 38) Escreva uma função recursiva que calcule a soma de dois números naturais, através de incrementos sucessivos (Ex.: 3 + 2 = ++(++3)). 39) Escreva uma função recursiva que calcule a multiplicação de dois números naturais, através de incrementos sucessivos 40) Escreva uma função recursiva que calcule a sequência dada por:

F(1) = 1 F(2) = 2 F(n) = 2 * F(n-1) + 3 * F(n-2). 41) Escreva uma função recursiva que dado um número n, gere todas as possíveis combinações com as n primeiras letras do alfabeto. Ex.: n = 3. Resposta: ABC, ACB, BAC, BCA, CAB, CBA 42) Escreva uma função recursiva que gere todas as possíveis combinações para um jogo da MegaSena com 6 dezenas 43) Uma sequência 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) = f0 fibg(f0, f1, 1) = f1 fibg(f0, f1, n) = fibg(f0, f1, n-1) + fibg(f0, f1, n-2), se n > 1. Escreva uma função recursiva em C para calcular fibg(f0, f1, n). 44) Escreva uma função recursiva que calcule a soma dos primeiros n cubos: S(n) = 1 3 + 2 3 +... + n 3 45) Escreva uma função recursiva que calcule a soma dos dígitos de um número inteiro. Por exemplo, se a entrada for 123, a saída deverá ser 1+2+3 = 6. 46) Faça uma função recursiva que permita calcular a média um vetor de tamanho N.