Buscar

Lista de exercícios Programação Avançada Com Respostas - Recursividade

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Lista de exercícios Programação Avançada Com Respostas - Recursividade 1
Lista de exercícios 
Programação Avançada Com 
Respostas - Recursividade
Created by PALOMA TAINARA LIMA SILVA
Exercício 01
Crie duas funções(uma iterativa e outra recursiva) para multiplicar dois 
números(através da soma sucessiva) 
// FORMA ITERATIVA 
 
#include <stdio.h> 
#include<stdlib.h> 
#include <locale.h> 
 
 
int mult(int num1, int num2){ 
 int i, resultado=0; 
 
 for(i=0; i < num2; i++) { 
 resultado = resultado + num1; 
 } 
 return resultado; 
} 
 
int main(){ 
 
 setlocale(LC_ALL,"Portuguese"); 
 
 int num1, num2; 
 printf("Informe os valores para realizar a multiplicao entre eles: "); 
 scanf("%d %d", &num1, &num2); 
 
 printf("%d * %d = %d ",num1, num2, mult(num1,num2)); 
 system("pause"); 
 
 return 0; 
}
Lista de exercícios Programação Avançada Com Respostas - Recursividade 2
// FORMA RECURSIVA 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <locale.h> 
 
int mult(int num1, int num2){ 
 int resultado=0; 
 
 if(num2 > 1){ 
 return num1 + mult(num1, num2-1); 
 } else { 
 return num1; 
 } 
} 
 
int main(){ 
 
 setlocale(LC_ALL, "Portuguese"); 
 
 int num1, num2; 
 printf("Informe os valores para realizar a multiplicao entre eles: "); 
 scanf("%d %d", &num1, &num2); 
 
 printf("%d * %d = %d ",num1, num2, mult(num1,num2)); 
 system("pause"); 
 return 0; 
} 
 
Exercício 02 
Faça um algoritmo recursivo para elevar um número a uma potência inteira 
não negativa.
#include <stdio.h> 
#include <stdlib.h> 
#include <locale.h> 
#include <math.h> 
 
 
potencia(int base, int expoente){ 
 if(expoente > 1 ){ 
 return printf("%d",base * potencia(base, expoente -1)) 
 }else{ 
 return 
 } 
 int cal = pow(base, expoente); 
 return printf(" %d^%d = %d", base, expoente, cal); 
 
} 
Lista de exercícios Programação Avançada Com Respostas - Recursividade 3
 
chamar(){ 
 
 int n, x; 
 
 printf("Informe a base e o expoente: \n"); 
 scanf("%d %d",&x, &n); 
 
 if( n < 0){ 
 printf("Não é possível elevar a uma potência negativa \n\n"); 
 return chamar(); 
 }else{ 
 return potencia(x,n); 
 } 
 
 
} 
 
int main(){ 
 
 setlocale(LC_ALL, "Portuguese"); 
 
 chamar(); 
 
 return 0; 
}
Exercício 03
Receba um número positivo e mostre como o exemplo:
 → Digitado: 10 
 Saída: 10,9,8,7,6,5,4,3,2,1
#include <stdio.h> 
 
 int exibir(int n){ 
 if(n>0){ 
 printf("%d ", n); 
 exibir(n-1); 
 } 
 } 
 
int main() { 
 int n; 
 printf("Digite um numero "); 
 scanf("%d", &n); 
 exibir(n); 
 return 0; 
}
Lista de exercícios Programação Avançada Com Respostas - Recursividade 4
Exercício 04
Receba um número positivo e mostre como o exemplo: 
→ Digitado: 10 
 Saída: 1,2,3,4,5,6,7,8,9,10.
#include <stdio.h> 
 
sequencia(int n){ 
 
 if(n == 0){ 
 return 1; 
 }else{ 
 return printf("%d", (n+1) - sequencia(n-1)); 
 } 
} 
 
int main(){ 
 
 int n; 
 
 printf("Digite um número:\n"); 
 scanf("%d", &n); 
 sequencia(n); 
 
 return 0; 
}

Continue navegando