Ich habe die folgende Sequenz von Zahlen:Java berechnet Sequenz mit Queue
S1 = N, S2 = S1 + 1, S3 = 2*S1 + 1, S4 = S1 + 2, S5 = S2 + 1, S6 = 2*S2 + 1, S7 = S2 + 2 ...
Mit der ArrayDeque<E>
Klasse, ich habe ein Programm zu schreiben, seine ersten 50
Mitglieder für bestimmte N
zu drucken. Beispiele:
input 2
output 2 3 5 4 4 7 5 6 11 7 5 9 6 ...
Dies ist mein Code. Das Problem ist, dass ich nicht weiter aktualisieren kann S
import java.util.ArrayDeque;
import java.util.Queue;
import java.util.Scanner;
public class p04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numN = scanner.nextInt();
scanner.close();
int counter = 1;
int nexS = numN;
Queue<Integer> fifty = new ArrayDeque<>();
for (int i = 0; i < 50; i++) {
if (i == 0){
fifty.add(numN);
}else {
if (counter == 1){
counter++;
numN = nexS + 1;
fifty.add(numN);
}else if (counter == 2){
counter++;
numN = (nexS * 2) + 1;
fifty.add(numN);
}else {
counter = 1;
numN = nexS +2;
fifty.add(numN);
nexS = nexS + 1;
}
}
}
for (Integer integer : fifty) {
System.out.print(integer + " ");
}
}
}
Haben Sie etwas versucht? kannst du uns zeigen, was du getan hast? –
Ich habe es geändert. Es war nicht absichtlich. Entschuldigung – Phil