OneCompiler

Lista avaliativa 1 - MD2

Lista avaliativa 1 - MD2

Fatorial recursivo

#include <stdio.h>

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

int main() {
    int num;

    printf("Insira um numero que voce deseja calcular o fatorial:\n");
    scanf("%d", &num);
    printf("O fatorial de %d e' %d", num, fatorial(num));

    return 0;
}

Fibonacci recursivo

#include <stdio.h>

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

int main() {
    int num;

    printf("Digite ate' qual termo deseja gerar a sequencia de Fibonacci, iniciando de a0:\n");
    scanf("%d", &num);
    printf("A sequencia de Fibonacci ate' o termo a%d e':\n", num);

    for(int i=0; i<=num; i++)
        printf("%d ", fibonacci(i));

    return 0;
}

Imprimir naturais de 1 a n

#include <stdio.h>

void naturaisDe1AteN(int n)
{
    if (n == 0)
    {
        return;
    }
    naturaisDe1AteN(n - 1);
    printf("%d ", n);
}

int main()
{
    int num;

    scanf("%d", &num);

    naturaisDe1AteN(num);

    return 0;
}

Somar naturais de 1 a n

#include <stdio.h>

int somaDe1AteN(int n){
    if(n==1) return 1; 
    return n+somaDe1AteN(n-1);
}

int main() {
    int num;

    scanf("%d", &num);

    printf("%d", somaDe1AteN(num));

    return 0;
}

MDC - Algoritmo de Euclides

#include <stdio.h>

int mdc_euclides(int a, int b) {
    int q = a/b;
    int r = a%b;

    if(r!=0) {
        a = b;
        b = r;
        return mdc_euclides(a, b);
    }
    
    return b;
}

int main() {
    int num1, num2;

    printf("Insira os dois números que deseja calcular o mdc (Euclides):\n");
    scanf("%d %d", &num1, &num2);

    printf("mdc(%d, %d): %d", num1, num2, mdc_euclides(num1, num2));

    return 0;
}

MMC a partir do MDC

#include <stdio.h>

int mdc_euclides(int a, int b) {
    int q = a/b;
    int r = a%b;

    if(r!=0) {
        a = b;
        b = r;
        return mdc_euclides(a, b);
    }
    
    return b;
}

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

int main() {
    int num1, num2;

    printf("Insira os dois números que deseja calcular o mmc:\n");
    scanf("%d %d", &num1, &num2);

    printf("mmc(%d, %d): %d", num1, num2, mmc(num1, num2));

    return 0;
}

Gerar tabela de adição modular

#include <stdio.h>

void tabelaAdicaoModular(int z) {
    for(int i=0; i<=z; i++) {
        for(int j=0; j<=z; j++) {
            printf("%d ", (i+j)%z);
        }
        printf("\n");
    }
}

int main() {
    int num;

    scanf("%d", &num);

    tabelaAdicaoModular(num);

    return 0;
}

Gerar tabela de multiplicação modular

#include <stdio.h>

void tabelaMultiplicacaoModular(int z) {
    for(int i=0; i<=z; i++) {
        for(int j=0; j<=z; j++) {
            printf("%d ", (i*j)%z);
        }
        printf("\n");
    }
}

int main() {
    int num;

    scanf("%d", &num);

    tabelaMultiplicacaoModular(num);

    return 0;
}