Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 27
  1. #11
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Originariamente inviato da Laletta
    purtroppo le ho già consultate tutte ste cose
    Cioè hai letto le soluzioni?
    Se è così non è l' approccio giusto, ti conviene provare a risolverli senza alcun aiuto.

    Riguardo alla funzione che hai fatto basta chiamare sum passando come parametro n-1 e cambiare il valore di fine ricorsione (scegli 1 ad esempio, o 0) cosi' numeri minori di 10 non danno problemi.

  2. #12
    ci proverò
    L'aura.

  3. #13
    ora ho provato a fare questo... cicla, però windows lo blocca :| che succede?

    codice:
    //programma che Ricorsivamente conta da n a 12.
    
    #include <iostream>
    
    using namespace std;
    
    int n;
    int t;
    int conta (int);
    
    int main()
    {
    	cout<<"questo programma conta da un numero n a 12"<<endl;
    
    	cout<<"inserire il numero da cui partire"<<endl;
    	cin>>n;
    	
    
    	cout<<"il risultato e'"<<conta(n)<<endl;
    
    	cout<<"tasto"<<endl;
    	cin>>t;
    
    	return 0;
    }
    
    int conta (int num){
    	if (num==12)
    	{
    		return num;
    	}
    	
    	else if(num != 12)
    	{
    	
    		return conta(num) + conta(num + 1);
    	}
    }
    L'aura.

  4. #14
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Finchè c'è una funzione che accetta come parametro n e che per calcolare il risultato invoca se stessa passando n come parametro, andrai in stack overflow.
    E' come dire a uno straniero che 'ciao' significa 'ciao', non lo capisce e continuerà sempre a farti la stessa domanda.

  5. #15
    quindi cosa mi consigli di fare?
    L'aura.

  6. #16
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Rifai la funzione tenendo conto che conta(num) non può richiamare ricorsivamente conta(num), altrimenti la funzione va avanti all' infinito.

  7. #17
    non dovrebbe andare avanti finchè il numero non è pari a 12?
    L'aura.

  8. #18
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Non ci arriva mai a 12, vai in stack overflow.
    Hai scritto:

    codice:
    return conta(num) + conta(num + 1);
    Supponiamo di chiamare conta(0), è come dire:
    conta(0)=conta(0)+conta(1)
    conta(0)= conta(0) + conta(1) + conta(1) + conta(2)
    conta(0)= conta(0) + conta(1) + 2*conta(1) + 2*conta(2) + conta(2) + conta(3)

    Puoi metterti quanto vuoi a tentare di calcolare il risultato, non finirai mai.Perchè quel conta(0) non se ne va mai, come fai a calcolarlo?

  9. #19
    quando fa 0+1 non dovrebbe assumere valore 1 e così via?
    L'aura.

  10. #20
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Il problema è che tu non chiami solo conta(num+1) (nel qual caso avresti ragione), ma anchee conta(num) il quale continuerà a chiamare conta num e quindi in parte dell'espressione num resterà seempre num, almeno che non parta da 12, nel qual caso ci arriva subito.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.