Domanda Aiuto esercizio in C

fujiitzu

Utente Silver
23 Agosto 2012
14
7
2
59
Ciao ragazzi,
cerco aiuto per svolgere un esercizio in linguaggio C, ovviamente non pretendo il codice completo ma quantomeno uno "pseudocodice" che mi permetta di capire in che modo ragionare per svolgere il seguente esercizio. Vi scrivo di seguito il testo di quest'ultimo. Grazie mille a tutti coloro che mi dedicheranno un po del loro tempo.

"Scrivere un programma che riceva in ingresso un numero positivo N e determini il massimo intero K tale che la somma dei primi K interi sia minore o uguale a N.
Ad esempio, se N=20 allora K risulta 5 , infatti 1+2+3+4+5 = 15 mentre 1+2+3+4+5+6 = 21.

La procedura descritta deve essere ripetuta un certo numero di volte , a scelta dell'utente , e per ogni numero positivo N inserito e massimo intero K determinato , la coppia (N,K) deve essere conservata come elemento di una lista concatenata. Alla fine, tale lista deve essere visualizzata a video utilizzando un'apposita funzione stampa lista."

Come ho già detto , non chiedo necessariamente la stesura dell'intero codice , bensì come dovrei ragionare (anche in termini di variabili).
Vi ringrazio.
 
  • Mi piace
Reazioni: FhSquad
Ciao ragazzi,
cerco aiuto per svolgere un esercizio in linguaggio C, ovviamente non pretendo il codice completo ma quantomeno uno "pseudocodice" che mi permetta di capire in che modo ragionare per svolgere il seguente esercizio. Vi scrivo di seguito il testo di quest'ultimo. Grazie mille a tutti coloro che mi dedicheranno un po del loro tempo.

"Scrivere un programma che riceva in ingresso un numero positivo N e determini il massimo intero K tale che la somma dei primi K interi sia minore o uguale a N.
Ad esempio, se N=20 allora K risulta 5 , infatti 1+2+3+4+5 = 15 mentre 1+2+3+4+5+6 = 21.

La procedura descritta deve essere ripetuta un certo numero di volte , a scelta dell'utente , e per ogni numero positivo N inserito e massimo intero K determinato , la coppia (N,K) deve essere conservata come elemento di una lista concatenata. Alla fine, tale lista deve essere visualizzata a video utilizzando un'apposita funzione stampa lista."

Come ho già detto , non chiedo necessariamente la stesura dell'intero codice , bensì come dovrei ragionare (anche in termini di variabili).
Vi ringrazio.
Ciao
Hai necessità di 3 cicli "consiglio for" tra cui 2 innestati dove uno ripete la procedura per quante volte vuoi e l'altro fa la sommatoria da 0 ad infinito:
(int i = 0; true; i++)

Dentro quest'ultimo devi fare dei controlli ed hai fatto

L'ultimo ciclo serve per stampare la sommatoria!

Lascio a te il resto!
 
Codice:
somma = 0, i = 0
finché somma <= N:     // finché la somma non oltrepassa il limite 
    i = i + 1          //   calcola il prossimo intero
    somma = somma + i  //   sommalo al totale
il risultato è i - 1   // hai oltrepassato il limite di un elemento, torna indietro di 1
 
  • Mi piace
Reazioni: Dazorn e fujiitzu