Quadrato di N eseguito con somma di n° dispari

di il
4 risposte

Quadrato di N eseguito con somma di n° dispari

Ciao, ho bisogno di una mano per un esercizio su dev-c++ per il quale non riesco a continuare.
La consegna è la seguente: Ricevuto in ingresso un numero intero positivo N (con N>0), calcolare il quadrato eseguendo la somma dei primi N numeri dispari a partire da 1.Ad esempio, se N=5 allora N2 sarà dato dalla somma 1+3+5+7+9=25.
Questo è quello che sono riuscito a fare fino ad ora:

// Autore:
#include <stdio.h>
main()
{
int n, N, x=1, t=0;

printf("inserire valore di n: ");
scanf("%d", &n);
N = n*n;
printf(" quadrato di n: %d", N);
do
{
t=t+x;
x=x+2;
}
while(t<=N);

}

4 Risposte

  • Re: Quadrato di N eseguito con somma di n° dispari

    1) Hai sbagliato sezione
    2) usa i tag CODE (pulsante < / >)
    3) Ma come sei bloccato? Devi fare un for a livello base che più di base non si può...
  • Re: Quadrato di N eseguito con somma di n° dispari

    Ciao, hai molteplici soluzioni per avere una successione di numeri dispari, la più banale è partire da 1 e aggiungere di volta in volta 2.
    1
    1 + 2 = 3
    3 + 2 = 5
    5 + 2 = 7
    etc etc...

    A questo punto ti serve solo una strategia per pescare i primi N numeri dispari, ad esempio:
    
    int dispari= 1;
    int sum = 1;
    for( i = 0; i < 5; i++){    //diciamo che vuoi i primi 5 numeri
        dispari = dispari + 2;
        sum = sum + dispari;
    }
    printf("Il quadrato di 5 e' : %d", sum);
    
    Oppure
    
    int sum = 0;
    for(i = 1; i < N*2; i+=2) sum = sum + i;
    printf("Il quadrato di N e' : %d", sum);
    
    Tornando alla tua soluzione, l'errore è che non prendevi i primi N numeri dispari ma i primi N*N-1 numeri dispari: per fare ciò devi prendere i primi N*2 numeri interi e considerare solo i dispari, quindi teoricamente la metà, di conseguenza avrai N numeri dispari.
  • Re: Quadrato di N eseguito con somma di n° dispari

    Sh3dir ha scritto:


    
    for(i = 1; i < N*2; i+2) sum = sum + i;
    
    for(i = 1; i < N*2; i+=2) sum = sum + i;
  • Re: Quadrato di N eseguito con somma di n° dispari

    Weierstrass ha scritto:


    Sh3dir ha scritto:


    
    for(i = 1; i < N*2; i+2) sum = sum + i;
    
    for(i = 1; i < N*2; i+=2) sum = sum + i;
    Pardòn!
Devi accedere o registrarti per scrivere nel forum
4 risposte