Hjælp!

Tags:    programmering

Jeg er selvstuderende i java, og der er en algoritme jeg simpelthen ikke kan få til at gå op.

Opgaven:
Lav et program der læser positive integers og lægger de første ulige integers sammen. Altså, hvis tallet er 4, ville de ulige tal være 1 + 3 + 5 + 7, hvilket vil sige at 4 er lig 16.

Jeg har indtil videre lavet nedenstående, men jeg kan simpelthen ikke komme frem til at lægge tallene sammen, fordi man ikke kan lave et output fra "while" og "for" loops. Altså, jeg kan ikke sende informationerne fra en metode/variabel ud af loops body. Eller hvad?

import acm.program.*;

public class addOddIntegers extends ConsoleProgram {

public void run() {

int numberOfIntegers = readInt("Insert a number: ");
int a = 0;
while(a < numberOfIntegers) {
int b = a * 2;
int c = b + 1;
println("The odd numbers: " + c);
a++;
}
}
}




9 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Et hurtigt kig på det viser jo, at det bare er den positive integer opløftet i anden?


kan du være mere specifik?


Altså hvis du f.eks. vil bruge tallet 7, vil du jo lave følgende: 1+3+5+7+9+11+13 = 49 - har jeg forstået det korrekt?

For hvis dette er korrekt forstået, er det præcist det samme som 7 opløftet i 2. (altså 7^2 - eller 7*7) som jo også er 49.

Et andet eksempel med 9:

1+3+5+7+9+11+13+15+17 = 81
9*9 = 81

Kan dette ikke bruges?



<< Simon Smith: interessant sammenhæng, jeg undrer mig over hvorfor det er sådan?
Nå men børge, det jeg mente var:
Fold kodeboks ind/udKode 

Jeg har kaldt variablen d, for at du kan beholde din c-variabel. Teknikken er som sagt at definere din variabel før while-loopet, så den ikke bliver overskrevet hver gang du løber igennem det.



Indlæg senest redigeret d. 16.04.2010 10:26 af Bruger #8249
Et hurtigt kig på det viser jo, at det bare er den positive integer opløftet i anden?



Hver gang du skriver 'int c' sletter maskinen din gamle variabel c. Løsningen er at definere din int c før du starter while loopet, og så bare skrive 'c = c + b + 1'



Ok, kan i så ikke lige sætte det sammen med resten af mine koder?



Et hurtigt kig på det viser jo, at det bare er den positive integer opløftet i anden?


kan du være mere specifik?



Hver gang du skriver 'int c' sletter maskinen din gamle variabel c. Løsningen er at definere din int c før du starter while loopet, og så bare skrive 'c = c + b + 1'


men hvis jeg skal skrive det du skriver uden for while loopet, kan den ikke hente b



Det har du jo helt ret i. Havde slet ikke set sådan på det. Tak, du får nogle point



Det har du jo helt ret i. Havde slet ikke set sådan på det. Tak, du får nogle point


hehe, det var da så lidt - det hjælper jo nogle gange at se på det med friske øjne ude fra ;)



t