Lista 1 - MD2
Lista 1
Aluno: Gabriel Lima da Silva
Matrícula: 222037610
Linguagem: C
1 - Fatorial usando recursividade
#include <stdio.h>
int fatorial(int x) {
if (x == 0 || x == 1)
return 1;
return x * fatorial(x-1);
}
int main() {
int valor;
printf("Digite o numero fatorial: ");
scanf("%d", &valor);
int resultado = fatorial(valor);
printf("Valor final do fatorial de %d! = %d", valor, resultado);
printf("\n");
return 0;
}
2 - Sequência de Fibonacci usando recursividade
#include <stdio.h>
int fibonacci(int x) {
if (x == 0)
return 0;
if (x == 1)
return 1;
return fibonacci(x-1) + fibonacci(x-2);
}
int main() {
int termos;
printf("Digite o numero de termos: ");
scanf("%d", &termos);
printf("Sequencia de Fibonacci ate %d termos:\n", termos);
for (int i = 0; i < termos; i++) {
printf("%d ", fibonacci(i));
}
printf("\n");
return 0;
}
3 - Impressão recursiva de 1 a n
#include <stdio.h>
int numerosInteiros(int x) {
if (x == 1)
return 1;
else
return x + numerosInteiros(x-1);
}
int main() {
int n;
printf("Digite um numero inteiro para somar sua sequencia de 1 a n:\n");
scanf("%d", &n);
if (n <= 0) {
printf("Por favor, insira um numero inteiro positivo.\n");
} else {
printf("Soma dos numeros numeros interos de n = %d\nValor = %d", n, numerosInteiros(n));
printf("\n");
}
return 0;
}
4 - Método recursivo
#include <stdio.h>
void numerosNaturais(int x) {
if (x <= 0)
return;
else
numerosNaturais(x-1);
printf("%d ", x);
}
int main() {
int n;
printf("Digite um numero natural para imprimir de 1 a n: ");
scanf("%d", &n);
if (n <= 0) {
printf("Por favor, insira um numero natural positivo.\n");
} else {
printf("Numeros de 1 a %d:\n", n);
numerosNaturais(n);
printf("\n");
}
return 0;
}
5 - Algoritmo de Euclides (MDC)
#include <stdio.h>
// Função para calcular o MDC usando o Algoritmo de Euclides
int mdc(int a, int b) {
while (b != 0) {
int resto = a % b;
a = b;
b = resto;
}
return a;
}
int main() {
int num1, num2;
// Entrada de dois números
printf("Digite dois numeros inteiros para calcular o MDC:\n");
scanf("%d %d", &num1, &num2);
// Chamando a função mdc e exibindo o resultado
int resultado = mdc(num1, num2);
printf("O MDC de %d e %d = %d\n", num1, num2, resultado);
return 0;
}
6 - MMC por MDC
#include <stdio.h>
// Função para calcular o MDC usando o Algoritmo de Euclides
int mdc(int a, int b) {
while (b != 0) {
int resto = a % b;
a = b;
b = resto;
}
return a;
}
// Função para calcular o MMC a partir do MDC
int mmc(int a, int b) {
return (a * b) / mdc(a, b);
}
int main() {
int num1, num2;
// Entrada de dois números
printf("Digite dois numeros inteiros para calcular o MMC:\n");
scanf("%d %d", &num1, &num2);
// Calculando o MMC e exibindo o resultado
int resultadoMMC = mmc(num1, num2);
printf("O MMC de %d e %d = %d\n", num1, num2, resultadoMMC);
return 0;
}
7 - Tabela Z_n para adição modular
#include <stdio.h>
void tabelaAdicaoModular(int n) {
printf("Tabela de Adicao Modular em Z_%d\n\n", n);
// Imprime o cabeçalho da tabela
printf(" |");
for (int i = 0; i < n; i++) {
printf(" %2d", i);
}
printf("\n");
// Linha divisória
printf("---+");
for (int i = 0; i < n; i++) {
printf("---");
}
printf("\n");
// Preenche a tabela com (a + b) mod n
for (int i = 0; i < n; i++) {
printf("%2d |", i); // Exibe o índice da linha
for (int j = 0; j < n; j++) {
printf(" %2d", (i + j) % n);
}
printf("\n");
}
}
int main() {
int n;
printf("Digite o valor de n para Z_n: ");
scanf("%d", &n);
if (n > 0) {
tabelaAdicaoModular(n);
} else {
printf("Por favor, insira um número positivo para n.\n");
}
return 0;
}
8 - Tabela Z_n para multiplicação modular
#include <stdio.h>
void tabelaMultiplicacaoModular(int n) {
printf("Tabela de Multiplicacao Modular em Z_%d\n\n", n);
// Imprime o cabeçalho da tabela
printf(" |");
for (int i = 0; i < n; i++) {
printf(" %2d", i);
}
printf("\n");
// Linha divisória
printf("---+");
for (int i = 0; i < n; i++) {
printf("---");
}
printf("\n");
// Preenche a tabela com (a * b) mod n
for (int i = 0; i < n; i++) {
printf("%2d |", i); // Exibe o índice da linha
for (int j = 0; j < n; j++) {
printf(" %2d", (i * j) % n);
}
printf("\n");
}
}
int main() {
int n;
printf("Digite o valor de n para Z_n: ");
scanf("%d", &n);
if (n > 0) {
tabelaMultiplicacaoModular(n);
} else {
printf("Por favor, insira um numero positivo para n.\n");
}
return 0;
}