Possible en double:
Make an array to store the calculated numbers in memoryFix tableaux récursifs
Je dois modifier un code pour faire de nouvelles choses.
Ce sont les nouvelles exigences:
programme -Le devra utiliser un tableau dans lequel stocker les nombres de Fibonacci calculés dans la mémoire. (Ce qui peut être une variable globe)
-Le tableau de nombres est également considéré comme un tableau partiellement rempli et par conséquent je devrai déclarer une variable pour garder une trace du nombre d'éléments qui ont été stockés dans le tableau .
-Le tableau de nombres doit être déclaré avoir 46 positions.
-Le nombre 46 doit être déclaré comme une constante globale nommée MAXFIB, et par conséquent le nombre 46 ne doit pas apparaître dans mon programme plus d'une fois. -Au début de votre programme, le tableau de nombres doit être initialisé avec la "connaissance de départ" (les cas de base) - les deux premiers nombres Fibonacci sont 1 et 1. Stockez-les dans les deux premières positions de tableau. -Ajouter un ensemble supplémentaire de cas de base de sorte que si la valeur du paramètre "n" est trop basse ou trop élevée, la fonction s'arrête et renvoie -1, indiquant une condition d'erreur. -Ajouter un cas de base supplémentaire de sorte que si le numéro de Fibonacci que nous recherchons est déjà stocké dans le tableau, alors j'ai simplement besoin de le récupérer du tableau et de le renvoyer. -Pour le cas récursif, il faudra encore appeler la fonction deux fois de manière récursive comme auparavant, mais après avoir calculé le nombre, je devrai le stocker dans le tableau avant de le renvoyer.
Ceci est mon code à ce jour:
#include <iostream>
using namespace std;
// Returns the nth number in the fibonacci sequence
int fib(int n, int* memory);
const int MAXFIB = 46;
int main()
{
int memory[MAXFIB];
memory[0] = 1;
memory[1] = 1;
cout << fib(46) << endl;
system("pause");
return 0;
}
int fib(int n, int* memory)
{
// Base cases
if (n < 1 || n > MAXFIB) return -1;
if (n == memory) return memory;
// Recursive cases
memory[n] = fib(n-1) + fib(n-2);
return;
}
Alors, ma question est, ce que je fais bien et faire le mal? De quoi ai-je besoin pour corriger et ou finir?
Merci
Vous avez des exigences inhabituelles. Devoirs? – DSM
Avez-vous essayé de compiler votre code? Que vous disent les messages d'erreur à propos de votre code? – Blastfurnace
Essayez au moins de compiler votre code avant de le demander. – SigTerm