Aluno João Carlos Lobo
Matrícula: 231012245
RECURSÃO MATEMÁTICA
1. o cálculo de n! utilizando recursividade (exemplo teste 5!)
//fatorial recursivo
int fat(int n)
{
if(n==0) return 1;
return n * fat(n-1);
}
int main() {
int n = 5;
//chamada da função e impressão do retorno
printf("%d! = %d\n", n, fat(n));
return 0;
}
2. a sequência de Fibonacci
//fibonacci recursivo
int fib(int n){
if(n==0) return 0;
if(n==1) return 1;
return fib(n-2) + fib(n-1);
}
int main(){
int a = fib(4);
printf("%d\n", a);
}
3. a impressão recursiva dos números naturais de 1 a n (exemplo teste 1 a 10)
def imprimir_naturais(n):
if n > 0:
imprimir_naturais(n - 1)
print(n, end=' ')
# Teste: imprimir de 1 a 10
imprimir_naturais(10)
print()
4. um método recursivo que receba como entrada um número inteiro positivo n e retorne 1 + 2 + 3 + 4 + … + n
def soma_naturais(n):
if n == 0:
return 0
return n + soma_naturais(n - 1)
# Teste: soma de 1 a 10
print(soma_naturais(10))
DIVISIBILIDADE
5. Algoritmo de Euclides para o cálculo do MDC
def mdc(a, b):
if b == 0:
return a
return mdc(b, a % b)
# Teste: calcular o MDC de 48 e 18
print(mdc(48, 18))
6. Calcular o MMC(a,b) a partir do MDC(a,b)
def mdc(a, b):
if b == 0:
return a
return mdc(b, a % b)
def mmc(a, b):
return abs(a * b) // mdc(a, b)
# Teste: calcular o MMC de 48 e 18
print(mmc(48, 18))
ARITMÉTICA MODULAR
7. Tabela Z_n para adição modular
def tabela_adicao_modular(n):
tabela = [[(i + j) % n for j in range(n)] for i in range(n)]
for linha in tabela:
print(linha)
# Teste: tabela de adicao modular para Z_5
tabela_adicao_modular(5)
8. Tabela Z_n para multiplicação modular
def tabela_multiplicacao_modular(n):
tabela = [[(i * j) % n for j in range(n)] for i in range(n)]
for linha in tabela:
print(linha)
# Teste: tabela de multiplicacao modular para Z_5
tabela_multiplicacao_modular(5)