OneCompiler

EXERCÍCIOS DE PROGRAMAÇÃO PARA A NOTA P1

Atividade Programação

NomeMatrícula
Luana Ribeiro Soares202016720

A atividade foi elaborada em linguagem c.

Arquivo com toda a atividade: MD2.zip

Recursão Matemática

#include <stdio.h>

int fatorial(int n) {
    if (n == 0) {
        return 1;
    } else {
        return n * fatorial(n - 1);
    }
}

int fibonacci(int n) {
    if (n == 0 || n == 1) {
        return n;
    } else {
        return fibonacci(n - 1) + fibonacci(n - 2);
    }
}

void imprime_naturais(int n) {
    if (n > 0) {
        imprime_naturais(n - 1);
        printf("%d ", n);
    }
}

int soma_naturais(int n) {
    if (n == 0) {
        return 0;
    } else {
        return n + soma_naturais(n - 1);
    }
}

int main (){
    int opcao, n;
    do{
        printf("Digite um numero: ");
        scanf("%d", &n);
        printf("1. o calculo de n! utilizando recursividade (exemplo teste 5!)\n");
        printf("2. a sequencia de Fibonacci\n");
        printf("3. a impressao recursiva dos numeros naturais de 1 a n (exemplo teste 1 a 10)\n");
        printf("4. um metodo recursivo que receba como entrada um numero inteiro positivo n e retorne 1 + 2 + 3 + 4 + ...+ n\n");
        printf("5. Sair\n");
        printf("Digite a opcao: ");
        scanf("%d", &opcao);
        switch (opcao) {
            case 1:
                printf("%d! = %d\n", n, fatorial(n));
                break;
            case 2:
                printf("Fibonacci(%d) = %d\n", n, fibonacci(n));
                break;
             case 3:
                imprime_naturais(n);
                printf("\n");
                break;
            case 4:
                printf("Soma dos naturais de 1 a %d = %d\n", n, soma_naturais(n));
                break;
            case 5:
                break;    
            default:
            printf("Opcao invalida\n");
        }   
    } while (opcao !=5);
    return 0;
}

 

Divisibilidade

 #include <stdio.h>

int mdc(int a, int b) {
    if (b == 0) {
        return a;
    } else {
        return mdc(b, a % b);
    }
}

int mmc(int a, int b) {
    return a * b / mdc(a, b);
}

int main() {
    int a, b;
    printf("Digite dois numeros: ");
    scanf("%d %d", &a, &b);
    printf("MDC(%d, %d) = %d\n", a, b, mdc(a, b));
    printf("MMC(%d, %d) = %d\n", a, b, mmc(a, b));
    return 0;
}

Aritmética Modular

 #include <stdio.h>

void tabela_adicao_modular(int n) {
    int i, j;
    printf("Tabela Z_%d para adicao modular\n", n);
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            printf("%d + %d = %d\n", i, j, (i + j) % n);
        }
    }
}

void tabela_multiplicacao_modular(int n) {
    int i, j;
    printf("Tabela Z_%d para multiplicacao modular\n", n);
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            printf("%d * %d = %d\n", i, j, (i * j) % n);
        }
    }
}

int main() {
    int n;
    printf("Digite um numero: ");
    scanf("%d", &n);
    tabela_adicao_modular(n);
    tabela_multiplicacao_modular(n);
    return 0;
}