|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 7906
|
Quesito C++ semplice
Salve
ho questo codice Codice PHP:
dove sbaglio??commetto un errore logico? per chi nn l'avesse capito voglio che il programma mi scriva la successione di fibonacci fino al numero che imposto io grazie |
|
|
|
|
|
#2 |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Di errori ne commetti almeno tre.
Primo: la sintassi che usi per il for, non è quella del C++. Prendi il libro e studia quella corretta. Secondo: chiami fibonacci una volta sola, all'esterno del ciclo for anziché all'interno, e per di più su una variabile non inizializzata. Fa' più attenzione quando scrivi il tuo codice. Terzo: implementi fibonacci ricorsivamente, quando esiste un algoritmo iterativo immediatamente applicabile. Le implementazioni ricorsive sono dispendiose dal punto di vista dell'occupazione della memoria: se puoi usare un'implementazione iterativa, fàllo.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 1451
|
Quote:
E' vero che la ricorsione è generalmente più dispendiosa dell'approccio iterativo, ma in molti casi è più immediata e la perdita di memoria non è tale da preferire l'iterazione.
__________________
Ciao ~ZeRO sTrEsS~ |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2002
Messaggi: 939
|
nel momento in cui chiama fibonacci(i) la variabile i non è ancora inizializzata o sbaglio?
[edit]ops,già detto |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2002
Messaggi: 939
|
prova con questo:
#include<iostream> using namespace std; unsigned long fibonacci( unsigned long ); int main() { unsigned long number; cout << "Enter an integer: "; cin >> number; for (unsigned long i = 0 ; i <= number ; i++) { cout << "Fibonacci(" << i << ") = " << fibonacci(i) << endl; } return 0; } // Recursive definition of function fibonacci unsigned long fibonacci( unsigned long n ) { if ( n == 0 || n == 1 ) // base case return n; else // recursive case return fibonacci( n - 1 ) + fibonacci( n - 2 ); } "dovrebbe" andare meglio,però consuma davvero un sacco di risorse, avevo provato a inserire 1000 ,ma arrivato a fibonacci(40) ho chiuso il programma per la disperazione... |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2002
Messaggi: 939
|
2 domandine
1) qual'è la necessità di dichiarare "number" come unsigned long? 2) se nel ciclo for dichiaro i come int, cosa cambia in pratica? |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 7906
|
come mi comporto con l'iteratività?
grazie x l'aiuto |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Mar 2002
Messaggi: 939
|
forse questa può andare:
Codice PHP:
Ultima modifica di chetidolanimale : 10-01-2005 alle 22:41. |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 7906
|
che palle nn posso eseguire il .exe che subito winxp me lo chiude
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Mar 2002
Messaggi: 939
|
è normale...
prova ad aprire il prompt dei comandi e ad eseguire il programma da lì |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 7906
|
sisi col pront so farlo ma mi rompe farlo sempre
su win me va senza problemi invece....no?? |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Mar 2002
Messaggi: 939
|
ho letto giusto ieri sul forum che una delle soluzioni per ovviare al problema è includere il file <stdlib.h> e aggiungere giusto prima del return 0 finale questa riga: system("PAUSE");
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Mar 2002
Messaggi: 939
|
forse in c++ sarebbe più corretto fare una
#include<cstdlib> using namespace std; senza l'h finale nel nome della libreria |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 7906
|
good
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:27.



















