Prazo de entrega: 9 dias (conferir no Moodle) Valor: 5 pontos
Escreva uma função recursiva que calcule a soma dos primeiros \(n\) cubos: \(S = 1^3 + 2^3 + \cdots + n^3\).
Escreva um procedimento recursivo para imprimir todos os números naturais de \(0\) até \(N\) em ordem crescente.
Escreva um procedimento recursivo para imprimir todos os números naturais de \(0\) até \(N\) em ordem decrescente.
Crie uma função recursiva que retorne a soma dos elementos de um vetor de inteiros.
Crie uma função recursiva que retorne a média dos elementos de um vetor de inteiros.
Escreve uma função recursiva que receba por parâmetro dois valores inteiros \(x\) e \(y\) e calcule e retorne o resultado de \(x^y\) (\(x\) elevado a \(y\)) para o programa principal.
Escreva uma função recursiva que receba um valor inteiro \(x\) e o retorne invertido. Exemplo: se \(x = 123\), a função deve retornar \(321\).
Escreva uma função recursiva que receba um valor inteiro em base decimal e o imprima em base binária.
Escreva uma função recursiva que retorne o menor elemento em um vetor
Modifique a função a seguir para que ela retorne (i) o número de chamadas recursivas executadas e (ii) o máximo de registros de ativação colocados na memória simultaneamente. A recursão deve terminar quando \(N\) for igual a \(1\).
void recursao(int N) {
/* ... complete codigo aqui ... */
recursao(N-1);
recursao(N-1);
/* ... complete codigo aqui ... */
}
Use o esqueleto a seguir para testar seu programa:
#include <stdlib.h>
#include <stdio.h>
int chamadas = 0;
int registros = 0;
int registros_max = 0;
int main(int argc, char **argv) {
if(argc < 2) {
printf("uso: %s X\n", argv[0]);
exit(EXIT_FAILURE);
}
int N = atoi(argv[1]);
recursao(N);
printf("foram executadas %d chamadas recursivas\n", chamadas);
printf("no maximo %d registros foram colocados "
"na memoria\n", registros_max);
exit(EXIT_SUCCESS);
}
-- Profs. Pedro O. S. Vaz de Melo e Ítalo F. S. Cunha
! vim: tw=68