O cálculo de n! utilizando recursividade
#include <stdio.h>
int fatorial(int n) {
if (n == 0) {
return 1;
} else {
return n * fatorial(n - 1);
}
}
int main() {
int numero;
printf("Digite o número:");
scanf("%d", &numero);
printf("O fatorial de %d é %d\n", numero, fatorial(numero));
return 0;
}
A sequência de Fibonacci
#include <stdio.h>
int fibonacci(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int main() {
int numero;
printf("Digite o número:");
scanf("%d", &numero);
printf("O termo %d da sequência de Fibonacci é %d\n", numero, fibonacci(numero));
return 0;
}
A impressão recursiva dos números naturais de 1 a n (exemplo teste 1 a 10)
#include <stdio.h>
void print_naturais(int n) {
if (n == 1) {
printf("%d\n", n);
return;
}
print_naturais(n - 1);
printf("%d\n", n);
}
int main() {
int numero;
printf("Digite o número:");
scanf("%d", &numero);
print_naturais(numero);
return 0;
}
Um método recursivo que receba como entrada um número inteiro positivo n e retorne 1 + 2 + 3 + 4 + … + n
#include <stdio.h>
int soma_naturais(int n){
if (n == 1){
return 1;
}
return n + soma_naturais(n - 1);
}
int main(){
int numero;
printf("Digite o número:");
scanf("%d", &numero);
printf("A soma de 1 até %d é %d\n", numero, soma_naturais(numero));
return 0;
}
Algoritmo de Euclides para o cálculo do MDC
#include <stdio.h>
int euclides(int n1, int n2) {
int quociente = n1 / n2;
int res = n1 - (quociente * n2);
if (res > 0) {
euclides(n2, res);
} else {
return n2;
}
}
int main() {
int n1;
int n2;
printf("Digite o primeiro número:");
scanf("%d", &n1);
printf("Digite o segundo número:");
scanf("%d", &n2);
printf("O mdc de %d e %d é %d\n", n1, n2, euclides(n1, n2));
return 0;
}
Calcular o MMC(a, b) a partir do MDC(a, b)
#include <stdio.h>
int mdc(int n1, int n2) {
int res = n1 % n2;
if (res > 0) {
return mdc(n2, res);
} else {
return n2;
}
}
int mmc(int n1, int n2) {
return (n1 * n2) / mdc(n1, n2);
}
int main() {
int n1;
int n2;
printf("Digite o primeiro número:");
scanf("%d", &n1);
printf("Digite o segundo número:");
scanf("%d", &n2);
printf("O mmc de %d e %d é %d\n", n1, n2, mmc(n1, n2));
return 0;
}
Tabela Z_n para adição modular
#include <stdio.h>
void z_adicao(int n) {
printf("+ ");
for (int coluna = 0; coluna < n; coluna++) {
printf("%d ", coluna);
}
printf("\n");
for (int linha = 0; linha < n; linha++) {
printf("%d ", linha);
for (int coluna = 0; coluna < n; coluna++) {
int result = (linha + coluna) % n;
printf("%d ", result);
}
printf("\n");
}
}
int main() {
int numero;
printf("Digite o número:");
scanf("%d", &numero);
printf("Tabela z_%d de adição modular:\n", numero);
z_adicao(numero);
return 0;
}
Tabela Z_n para multiplicação modular
#include <stdio.h>
void z_multiplicacao(int n) {
printf("x ");
for (int coluna = 0; coluna < n; coluna++) {
printf("%d ", coluna);
}
printf("\n");
for (int linha = 0; linha < n; linha++) {
printf("%d ", linha);
for (int coluna = 0; coluna < n; coluna++) {
int result = (linha * coluna) % n;
printf("%d ", result);
}
printf("\n");
}
}
int main() {
int numero;
printf("Digite o número:");
scanf("%d", &numero);
printf("Tabela z_%d de multiplicação modular:\n", numero);
z_multiplicacao(numero);
return 0;
}