ESERCIZIO C++

di il
11 risposte

ESERCIZIO C++

Scrivi un programma che verifichi che il quadrato di un numero n è uguale alla somma dei primi n numeri dispari ( ad esempio per n=5, 5*5=25, 25=1+3+5+7+9).

#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
    int n, i, somma=0;
    cout<<"inserisci un numero:"<<endl;
    cin>>n;
    n=n*n;
    do{
         for( i=0; i<n; i++){
                   if(i%2!=0){
                       cout<<i<<endl;
                       somma=somma+i;
                              }
                             }
                 }while(somma<=n);    
    cout<<n<<endl;                
                
    
    
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
non capisco perchè non funziona

11 Risposte

  • Re: ESERCIZIO C++

    Secondo te cosa succede con

    n=n*n;

    P.S. Usa titoli più adeguati
  • Re: ESERCIZIO C++

    Con n=n*n il numero di partenza, n, diventa uguale al suo quadrato( ad esempio n=5 diventa n=5*5=25 )
  • Re: ESERCIZIO C++

    Quindi perdi il 5 E nella for?
  • Re: ESERCIZIO C++

    Si, poi nel for la variabile i partendo da 0 aumenta sempre di 1, questo numero se è dispari viene stampata a schermo e sommata alla variabile somma.
  • Re: ESERCIZIO C++

    Non mi stai seguendo ... Quando si ferma la for?
  • Re: ESERCIZIO C++

    Quando la somma diventa maggiore o uguale a n.
  • Re: ESERCIZIO C++

    Ho provato a rifarlo, è più corretto di quello iniziale ma non capisco perchè mi trasmetti a schermo anche l'ultimo numero dispari dopo quelli che sommati danno il quadrato del numero iniziale... esempio: inserisco 5 mi trasmette a schermo 1 3 5 7 9 e 11 quando 25=1+3+5+7+9, quindi mi da come risultato finale 36.
    
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int n, i, somma=0;
        cout<<"inserisci un numero:"<<endl;
        cin>>n;
        n=n*n;
        
             for( i=0; somma<=n; i++){
                       if(i%2!=0){
                           somma=somma+i;
                           cout<<i<<endl;
                                 }
                                      }
                        
        cout<<somma<<endl;                
                    
        
        
        
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
    
  • Re: ESERCIZIO C++

    Ma perché non parti da

    q = n * n;

    ?
  • Re: ESERCIZIO C++

    Non cambia nulla...
  • Re: ESERCIZIO C++

    Ho detto "parti", ovviamente modificando il resto ...
    
    	int n, q, i, k=1, somma = 0;
    	cout << "inserisci un numero:" << endl;
    	cin >> n;
    	q = n*n;
    
    	for (i = 0; i<n; i++)
    	{
    		somma = somma + k;
    		k = k + 2;
    	}
    	
    	cout << somma << endl;
    
  • Re: ESERCIZIO C++

    Grazie mille!
Devi accedere o registrarti per scrivere nel forum
11 risposte