Ich bekomme die Zahlen richtig eingescannt, aber die Methoden funktionieren nicht richtig. Zuerst tut man nichts und der zweite geht in eine Endlosschleife.Warum funktioniert die Methode nicht "richtig"?
Die aufgerufene Methode funktioniert nicht richtig. Ich bin mir nicht sicher, was ich tun soll.
import java.util.Scanner;
public class testSequence {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter a number: ");
int enterNumber = scan.nextInt();
System.out.println("1 for Iteration, 2 for Recursion: ");
int type = scan.nextInt();
if (type == 1){
computeIteration(enterNumber);
} else if (type == 2){
computeRecursion(enterNumber);
}
}
public static int computeIteration(int enterNumber) {
int answer;
int multiplier = 1;
int count = 0;
int addend = 0;
if (enterNumber == 0) {
count++;
return enterNumber;
} else if (enterNumber == 1) {
count++;
return enterNumber;
} else {
for (int i = 0; i <= enterNumber; i++) {//need to adjust "i" for counter correction
enterNumber = (multiplier * 2) + addend;
addend = multiplier;
multiplier = enterNumber;
count += 1;
}//end for loop
answer = enterNumber;
}//end else
return answer;
}//end computeIteration
public static int computeRecursion(int n) {
int count = 0;
if (n == 0) {
count++;
return 0;
} else if (n == 1) {
count++;
return 1;
} else {
count++;
return computeRecursion(2 * (n - 1)) + computeRecursion(n - 2);
}
}//end computerRecursion()
}//end Sequence()
Ich sehe, dass Sie rufen "computeIteration", aber dann tun Sie nichts mit dem Ergebnis. Könnte das ein Teil des Problems sein? – ajb
Sie erhöhen an mehreren Stellen in beiden Methoden "Anzahl", aber Sie verwenden es nicht. – Murillio4
Murillio4 Ich weiß das, danke. Ich mache mir mehr Gedanken darüber, warum die Methode nicht richtig funktioniert. @ajb es soll die Antwort zurückgeben, aber die Antwort wird überhaupt nicht angezeigt. – platypus87