Atividades de programação


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)