Lista 03
Lista 03
Lista 03
16 de outubro de 2018
1. Calculando potências
3. Escreva uma função que recebe um número inteiro n passado por pa-
râmetro e devolve o primeiro número da série de Fibonacci que é maior
ou igual a n.
4. Escreva uma função que recebe um número inteiro n passado por pa-
râmetro e devolve o maior número primo que é menor ou igual a n.
#include <stdio.h>
1
int i = 10;
int j = 20;
int main() {
int i, k, ra, p;
p = 10;
ra = 5;
for (i = 0; i < 3; i++) {
k = soma1(ra, p);
ra = soma2(k);
printf("%d, %d\n", ra, k);
}
}
7. Escreva uma função chamada teste que recebe um valor inteiro posi-
tivo n como parâmetro. Sua função deve retornar um valor inteiro b
tal que bk = n para algum inteiro k, e b seja o menor possível.
2
11. Faça uma representação da memória do computador considerando as
chamadas das funções recursivas abaixo. Faça um modelo passo a passo
como nos exemplos vistos em sala de aula:
• fatorial(6)
• fibonacci(5)
com k objetos
que podem ser formados a partir de n objetos. Por
exemplo, 43 = 4, pois com 4 objetos A, B, C e D é possível formar
4 diferentes grupos de 3 objetos: ABC, ABC, ACD e BCD. Sabe-se
que
se k = 1
n
n
k
= 1
n−1 n−1
se k = n
k−1 + k se 1 < k < n
Faça um programa que lê dois inteiros positivos n e k e calcula nk .
int fun(int n) {
if (n < 4)
return 3 * n;
return 2 * fun(n-4) + 5;
}
3
16. A seguinte função calcula o maior divisor comum dos inteiros estrita-
mente positivos m e n. Escreva uma função recursiva equivalente.
17. Escreva uma função recursiva que imprima uma régua inglesa de ordem
n no intervalo [0..2n]. Nessa régua, o traço no ponto médio deve ter
comprimento n, os traços nos pontos médios dos subintervalos superior
e inferior devem ter comprimento n − 1, e assim por diante. A figura
abaixo mostra uma régua inglesa de ordem 4.
.
. -
. --
. -
. ---
. -
. --
. -
. ----
. -
. --
. -
. ---
. -
. --
. -
.
18. A recursividade pode ser utilizada para gerar todas as possíveis per-
mutações de um conjunto de símbolos. Por exemplo, existem seis per-
mutações no conjunto de símbolos A, B e C: ABC, ACB, BAC, BCA, CBA
e CAB. O conjunto de permutações de n símbolos é gerado tomando-
se cada símbolo por vez e prefixando-o a todas as permutações que
resultam dos n − 1 símbolos restantes. Consequentemente, permuta-
ções num conjunto de símbolos podem ser especificadas em termos de
4
permutações num conjunto menor de símbolos. Formule um algoritmo
recursivo para calcular todas as permutações de n símbolos.