This Chat is read-only. Login to resume chatting.
def fibo(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibo(n-1) + fibo(n-2)print(fibo(5)) # Affiche 5
print(fibo(10)) # Affiche 55print(fibo(30)) # Peut prendre un certain temps
print(fibo(50)) # Peut prendre beaucoup de tempsdef fibo_memo(n, memo={}):
if n in memo:
return memo[n]
if n == 0:
return 0
elif n == 1:
return 1
else:
memo[n] = fibo_memo(n-1, memo) + fibo_memo(n-2, memo)
return memo[n]#include <stdio.h>
int fibo(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return fibo(n-1) + fibo(n-2);
}
}
int main() {
int n = 10; // Exemple avec n = 10
printf("Fibonacci de %d est %d\n", n, fibo(n));
return 0;
}int main() {
printf("Fibonacci de 5 est %d\n", fibo(5)); // Affiche 5
printf("Fibonacci de 10 est %d\n", fibo(10)); // Affiche 55
return 0;
}int main() {
printf("Fibonacci de 30 est %d\n", fibo(30)); // Peut prendre un certain temps
printf("Fibonacci de 50 est %d\n", fibo(50)); // Peut prendre beaucoup de temps
return 0;
}#include <stdio.h>
#define MAX 100
int memo[MAX];
int fibo_memo(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else if (memo[n] != -1) {
return memo[n];
} else {
memo[n] = fibo_memo(n-1) + fibo_memo(n-2);
return memo[n];
}
}
int main() {
for (int i = 0; i < MAX; i++) {
memo[i] = -1; // Initialiser le tableau de mémoïsation
}
int n = 50; // Exemple avec n = 50
printf("Fibonacci de %d est %d\n", n, fibo_memo(n));
return 0;
}#include <stdio.h>
#include <stdlib.h>
#define MAX 201
unsigned long long memo[MAX];
unsigned long long fibo_memo(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else if (memo[n] != -1) {
return memo[n];
} else {
memo[n] = fibo_memo(n-1) + fibo_memo(n-2);
return memo[n];
}
}
int main() {
for (int i = 0; i < MAX; i++) {
memo[i] = -1; // Initialiser le tableau de mémoïsation
}
int n = 200; // Exemple avec n = 200
printf("Fibonacci de %d est %llu\n", n, fibo_memo(n));
return 0;
}#include <stdio.h>
#include <stdlib.h>
unsigned long long *memo;
unsigned long long fibo_memo(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else if (memo[n] != -1) {
return memo[n];
} else {
memo[n] = fibo_memo(n-1) + fibo_memo(n-2);
return memo[n];
}
}
int main() {
int n = 200; // Exemple avec n = 200
memo = (unsigned long long *)malloc((n + 1) * sizeof(unsigned long long));
if (memo == NULL) {
fprintf(stderr, "Erreur d'allocation de mémoire\n");
return 1;
}
for (int i = 0; i <= n; i++) {
memo[i] = -1; // Initialiser le tableau de mémoïsation
}
printf("Fibonacci de %d est %llu\n", n, fibo_memo(n));
free(memo); // Libérer la mémoire allouée
return 0;
}#include <stdio.h>
#include <stdlib.h>
unsigned long long *memo;
unsigned long long fibo_memo(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else if (memo[n] != -1) {
return memo[n];
} else {
memo[n] = fibo_memo(n-1) + fibo_memo(n-2);
return memo[n];
}
}
int main() {
int n;
printf("Entrez la valeur de n : ");
if (scanf("%d", &n) != 1) {
fprintf(stderr, "Erreur de saisie\n");
return 1;
}
memo = (unsigned long long *)malloc((n + 1) * sizeof(unsigned long long));
if (memo == NULL) {
fprintf(stderr, "Erreur d'allocation de mémoire\n");
return 1;
}
for (int i = 0; i <= n; i++) {
memo[i] = -1; // Initialiser le tableau de mémoïsation
}
printf("Fibonacci de %d est %llu\n", n, fibo_memo(n));
free(memo); // Libérer la mémoire allouée
return 0;
}#include <stdio.h>
unsigned long long fibo_iterative(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
}
unsigned long long a = 0;
unsigned long long b = 1;
unsigned long long c;
for (int i = 2; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
return b;
}
int main() {
int n;
printf("Entrez la valeur de n : ");
if (scanf("%d", &n) != 1) {
fprintf(stderr, "Erreur de saisie\n");
return 1;
}
printf("Fibonacci de %d est %llu\n", n, fibo_iterative(n));
return 0;
}#include <stdio.h>
void multiply(unsigned long long F[2][2], unsigned long long M[2][2]) {
unsigned long long x = F[0][0] * M[0][0] + F[0][1] * M[1][0];
unsigned long long y = F[0][0] * M[0][1] + F[0][1] * M[1][1];
unsigned long long z = F[1][0] * M[0][0] + F[1][1] * M[1][0];
unsigned long long w = F[1][0] * M[0][1] + F[1][1] * M[1][1];
F[0][0] = x;
F[0][1] = y;
F[1][0] = z;
F[1][1] = w;
}
void power(unsigned long long F[2][2], int n) {
if (n == 0 || n == 1) {
return;
}
unsigned long long M[2][2] = {{1, 1}, {1, 0}};
power(F, n / 2);
multiply(F, F);
if (n % 2 != 0) {
multiply(F, M);
}
}
unsigned long long fibo_matrix(int n) {
unsigned long long F[2][2] = {{1, 1}, {1, 0}};
if (n == 0) {
return 0;
}
power(F, n - 1);
return F[0][0];
}
int main() {
int n;
printf("Entrez la valeur de n : ");
if (scanf("%d", &n) != 1) {
fprintf(stderr, "Erreur de saisie\n");
return 1;
}
printf("Fibonacci de %d est %llu\n", n, fibo_matrix(n));
return 0;
}