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;
}