mi è venuto un dubbio abbstanza banale... dato un numero n sommo i primi n numeri pari esempio: n = 2 somma =6.
Se utilizzo il ciclo for fino a dove bisogna farlo scorrere?!...![]()
per testare il numero uso il modulo..!
mi è venuto un dubbio abbstanza banale... dato un numero n sommo i primi n numeri pari esempio: n = 2 somma =6.
Se utilizzo il ciclo for fino a dove bisogna farlo scorrere?!...![]()
per testare il numero uso il modulo..!
Non lo farei con un for, piuttosto con un while. Ma se proprio:
codice:public class SumN { public static void main (String[] args) { int i = 0; int n = 2; int sum = 0; for (int count = 0; count < n; ) { if (++i % 2 == 0) { sum += i; count++; } } System.out.println ("Sum = " + sum); } }
fore come dici tu meglio il while... anche perchè nn capisco molto la leggibilità del for dato che l' ho imposto diversamente del tipo una cosa del tipo for(int i=0; i<cont; i++)
Forse con il while viene meglio anke per la leggibilità... cn il while tu come avresti proceduto?!Originariamente inviato da mxa
Non lo farei con un for, piuttosto con un while. Ma se proprio:
codice:public static void main (String[] args) { int i = 0; int n = 2; int sum = 0; for (int count = 0; count < n; ) { if (++i % 2 == 0) { sum += i; count++;
un po' di sforzo potresti farlo anche tu pero', altrimenti non impari nulla di sicuro. Spero almeno di non starti facendo i compiti![]()
codice:public class SumN { public static void main (String[] args) { int n = 2; int sum = 0; int foundEvenNumbers = 0; int nextNumber = 2; while (foundEvenNumbers < n) { if (nextNumber % 2 == 0) { sum += nextNumber; foundEvenNumbers++; } nextNumber++; } System.out.println ("Sum = " + sum); } }
sorry![]()
Sempre con un for (che, per me, è la via più semplice):
Ciao.codice:int sum = 0; for(int i=0; i<n; i++) { sum += 2 * (i+1); }![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Ancora meglio se ricorsivamente![]()
codice:public int somma(int n){ if(n==0) return n; if(n%2==0) return n+=somma(n-1); return somma(n-1); }![]()
5t4rdu5t chiedeva di ottenere, dato N, la somma dei primi N numeri pari, non la somma dei numeri pari tra 0 e N...Originariamente inviato da VincenzoTheBest
Ancora meglio se ricorsivamente![]()
codice:public int somma(int n){ if(n==0) return n; if(n%2==0) return n+=somma(n-1); return somma(n-1); }![]()
Versione ricorsiva, solo come esercizio sulla ricorsione:
In questi casi, l'iterazione è sempre la via preferenziale.codice:public int somma(int n) { int ret = 0; if(n==0) { ret = 0; } else { ret = 2 * n + somma(n-1); } return ret; }
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Anche questa dovrebbe essere una soluzione no?
codice:class Es { public static void main(String[] args) { int n = (args.length == 1) ? Integer.parseInt(args[0]) : 1; int res = 0; for(int i=2; i<=n*2; i+=2) { res+=i; } System.out.println("Somma: "+res); } }
Diciamo che l' esempio di mxa cn il while e qll di LeleFT sn molto ottimali anche come leggibilità anche se nel while ho fatto una piccola modifica. Utilizzo della ricorsione diciamo che ancora nn l' ho studiata xD ma è interessante lo stesso! grz di tutto!![]()