Je suis un débutant Java, s'il vous plaît supporter avec moi. :) Je n'ai rien appris de tel que les déclarations if
et je n'ai encore appris que sur les boucles, les variables et les classes. J'ai besoin d'écrire une seule boucle qui produit la sortie suivante:
10 0 9 1 8 2 7 3 6 4 5 5
Je peux voir dans le segment que la différence entre les nombres est réduite de un. Ainsi, de 10 à 0, il est soustrait 10, puis de 0 à 9, il est ajouté par 9 et il y a alternance entre addition et soustraction.
Mon idée était de créer la boucle où ma variable i = 10
diminue de 1 dans la boucle (i--
) mais je ne suis pas tout à fait sûr comment alterner l'addition et la soustraction dans la boucle ?
public class Exercise7 {
public static void main(String[] args) {
for(int i = 10; i >= 0; i--) {
System.out.print(i + " ");
}
}
}
Pourquoi ne pas avoir deux variables supplémentaires et l'incrémenter un et décrémenter l'autre:
int y = 0;
int z = 10;
for(int i = 10; i >= 5; i--) {
System.out.print(z + " " + y + " ");
y++;
z--;
}
Sortie:
10 0 9 1 8 2 7 3 6 4 5 5
Cependant, nous pouvons également le faire sans variables supplémentaires:
for(int i = 10; i >= 5; i--) {
System.out.print(i + " " + 10-i + " ");
}
public class exercise7 {
public static void main(String[] args) {
for(int i = 10; i >= 5; i--) {
System.out.print(i + " " + (10-i) + " ");
}
}
}
Cela ressemble un peu à un devoir, alors je ne vous donnerai pas de code de travail.
Mais rappelez-vous que vous pouvez insérer plusieurs instructions print dans la boucle for. Vous n'avez pas nécessairement à parcourir 10 fois pour obtenir votre sortie. 5 fois est totalement suffisant. Et comme déjà indiqué dans un commentaire ci-dessus: les nombres alternent entre i et 10-i, pour la plage droite de i.
Ou vous pouvez le faire de cette façon, si vous voulez être un sage;)
for(int i = 0, arr[] = {10,0,9,1,8,2,7,3,6,4,5,5}; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
remplacer i >= 0
par i >= 5
ajoutez ceci: System.out.print((10-i--) + " ");
à partir de ce que tu as fait
public class Exercise7 {
public static void main(String[] args) {
for(int i = 10; i >= 5; ) {
System.out.print(i + " " + (10-i--) + " ");
}
}
}
Quelque chose n'a pas besoin d'être trop réfléchi:
public class Answer2 {
public static void main(String[] args) {
for (int i = 0; i <= 5; i++){
System.out.println(i);
System.out.println(10 - i);
}
}
}
modifier
Vous POUVEZ et devriez généraliser votre tâche. Voici un exemple de la façon dont vous pourriez le faire (je n'écrirai pas la méthode car c'est votre travail - je modifierai plutôt ma réponse pour vous montrer les possibilités)
public class Answer2 {
private static final Random RANDOM = new Random();
public static void main(String[] args) {
//You can use any upper bound for 'someLength'
int someLength = 1 + RANDOM.nextInt(20);
for (int i = 0; i <= someLength / 2; i++) {
System.out.println(someLength - i);
System.out.println(i);
}
}
}
Vous devriez penser à généraliser la série. Comme vous l'avez observé, la série alterne entre l'addition et la soustraction. En outre, la différence diminue d'un point à chaque étape. Vous pouvez définir des variables pour ces deux éléments et les ajuster dans la boucle.
public static void main(String[] args) {
int term = 10;
int sign = 1;
for(int delta = 10; delta >= -1; delta--) {
System.out.print(term + " ");
sign = -1 * sign;
term = term + sign * delta;
}
}
Qui a dit que vous ne pouvez utiliser qu'un seul System.out.print
dans la boucle?
for (int i=0; i < 5; i++) {
System.out.print((10 - i) + " " + (i + 1) + " ");
}
Il suffit de lancer une boucle à partir de 0 ou de 10.
1 . Si vous commencez à partir de 10
for(int i=10;i>=5;i--){
System.out.print(i + " " + (10-i) + " ");
}
2 . Si vous partez de 0
for(int i=0;i<=5;i++){
System.out.print((10-i) + " " + i + " ");
}
La sortie sera: 10 0 9 1 8 2 7 3 6 4 5 5
J'ai essayé ce code. Cela a fonctionné pour moi.
for(int i = 10; i >= 5; i--) {
System.out.print(i + " ");
System.out.print(10-i + " ");
}
int d = 0;
for(int i = 10; i >= 5; i--) {
System.out.print(i + " " + d + " ");
d++;
}
C'est ici. La liste de sortie est une liste de combinaisons permettant de créer 10;
10 + 0 = 10
9 + 1 = 10
8 + 2 = 10
7 + 3 = 10
6 + 4 = 10
5 + 5 = 10
int n = 10;
int half = n / 2;
if(n % 2 == 1){
half++;
}
for(int x = n; x >= half;x--){
int remainder = n % x;
if(remainder == 0){
remainder = n - x;
}
System.out.print(x);
System.out.print(" ");
System.out.println(remainder);
}