/ Forside/ Teknologi / Udvikling / Java / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
hjælp til et sum program
Fra : Fknight
Vist : 772 gange
50 point
Dato : 02-09-05 21:12

hej, jeg har endnu et program jeg godt vil lave, men som jeg ik kan finde ud af. Denne gang har jo dog noget af en mulig løsning.

Programmet skal finde summen af 1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20
Og jeg tænker det må da være såå simpelt, men det er det faktisk ikke.

Hvis der er nogen der har et bedre forslag til min løsning så skriv den. Men jeg vil hellere ha fundet min fejl i programmet, det virker jo fint nok det gør bare ik det som jeg vil ha det til, hehe.

public class findsum
{
public static void main(String[] arg)
{

for (int n = 1; n <=20; n =n+1)
{
int sum =0;
for (int j=0; j<n; j++) sum= sum + n;
System.out.println (n+" : "+ sum);

}
}
}



 
 
Kommentar
Fra : molokyle


Dato : 02-09-05 21:22

int x,y=20;
for(x=0;x<y;x++;);System.out.println (x);

??? </MOLOKYLE>


Accepteret svar
Fra : Moneypenny

Modtaget 50 point
Dato : 03-09-05 00:07

Det er længe siden, jeg har programmeret i java, men mon følgende ikke kan gøre det:

public class findsum
{
public static void main(String[] arg)
{
int sum =0;
for (int n = 1; n <=20; n =n+1)
{
sum= sum + n;
}
System.out.println (n+" : "+ sum);
}
}


Kommentar
Fra : molokyle


Dato : 03-09-05 01:45

Mit forslag var bollocks ! Jeg tæller jo blot op uden at sumere
Prøv istedet:

public class findsum
{
int sum=0,y=20;
for(int x=0;x<y;sum+=++x)System.out.println(sum);
}


Moneypenny -> Tæller din rutine ikke tallene 2 til 21 således :

Du sætter n=1 hvorefter du opskriver n med 1 i løkkekroppen (n=n+1) altså er n==2 når sum første gang tildeles værdien af n.

...når n=20 opskrives n stadig med 1 inden løkken forlades og giver sum= sum + 21

Opskrivning af n forgår jo EFTER at værdien er testet op imod værdien 20.

Hvis du fjerner lighedstegnet i testen n<=20 så der står n<20 tælles der korrekt til 20, men du får stadig ikke 1 med.

Ps. Jeg er også lidt rusten i min Java

</MOLOKYLE>

Kommentar
Fra : Moneypenny


Dato : 03-09-05 14:31

Molekyle -> Jeg var selv i tvivl, men tror du har ret. I så fald skal linjen lyde således i mit eksempel:

for (int n = 0; n <20; n++)

Man kunne selvfølgelig også bruge en while-løkke.

public class findsum
{
public static void main(String[] arg)
{
int sum =0;
int n = 0;
while (n <=20)
{
sum++;
n++;
}
System.out.println (n+" : "+ sum);
}
}


Kommentar
Fra : Moneypenny


Dato : 03-09-05 14:40

Ups, vi prøver lige igen.

public class findsum
{
public static void main(String[] arg)
{
int sum =0;
int n = 0;
while (n <=20)
{
sum = sum + n;
n++;
}
System.out.println (n+" : "+ sum);
}
}

Kommentar
Fra : molokyle


Dato : 03-09-05 16:45

..man kunne i løkken også; udover n<20; blot i samme ombæring rette : int n = 1 til : int n = 0

..i din oprindelige kode moneypenny

Eeeiiihhhhh..... jeg må se at få installeret JAVA SDK igen ...inden jeg vrøvler for meget

</MOLOKYLE>

Kommentar
Fra : Fknight


Dato : 04-09-05 14:18

Takker, det prøver jeg ;)...

Kommentar
Fra : Fknight


Dato : 04-09-05 15:56

Den med forlykken som moneypenny har lavet, er en fin måde at gøre det på, tak.

Tak for svarene, jeg lukker debatten.

Godkendelse af svar
Fra : Fknight


Dato : 04-09-05 15:57

Tak for svaret Moneypenny.
                        

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste