Salut, j'essaye de le faire si la hauteur est de 3

AA
BBAA
AABBAA

Et Si la hauteur est de 7, le motif suivant est imprimé

AA
BBAA
AABBAA
BBAABBAA
AABBAABBAA
BBAABBAABBAA
AABBAABBAABBAA

Jusqu'à présent, j'ai fait ça

import java.util.Scanner; 
public class P4 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    int height;
    String A = "AA";
    String B = "BB";

    Scanner sc = new Scanner(System.in);

    System.out.println("Enter your height: ");
    height = sc.nextInt();


    for(int i = 0; i < height+1; i++) {

        for(int j = 0; j < i; j++) {
            System.out.print("A"); 
        }

        System.out.println(); 
    }


}

}

Et ma sortie est

Enter your height: 
3

A
AA
AAA
-4
hudson 24 janv. 2017 à 15:57

3 réponses

Meilleure réponse

Utiliser cet exemple de code

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello World!");

        int height;
        String A = "AA";
        String B = "BB";

        Scanner sc = new Scanner(System.in);

        System.out.println("Enter your height: ");
        height = sc.nextInt();


        for (int i=1; i<=height; i++){
            for (int j=1; j<=i; j++) {
                if ((j%2) == 1) {
                    System.out.print((i%2 == 1) ? A: B);
                } else {
                    System.out.print((i%2 == 1) ? B :A);
                }
            }
            System.out.println();
        }

    }
}
0
Maruf Hossain 25 janv. 2017 à 06:53

Une solution alternative ...

public static final String A = "AA";
public static final String B = "BB";

public static void main(String[] args) {

    System.out.println("Input your height");
    final Scanner inputScanner = new Scanner(System.in);
    int height = inputScanner.nextInt();

    String currentToken;
    for(int i = 0; i < height; i++){
        currentToken = i%2==1?B:A;
        for(int j = i; j >= 0; j--){
            System.out.print(currentToken);
            currentToken = changeToken(currentToken);
        }
        System.out.print("\n");
    }

}

private static String changeToken(String currentToken){
    return currentToken.equals(A)?B:A;
}
-1
lumpofiron 24 janv. 2017 à 13:35

Votre code n'imprime que «A», comme vous l'avez codé, vous voulez imprimer le double AA, c'est-à-dire «AA».

Et après chaque itération impaire, c'est-à-dire 1,3,5,7 ..., vous voulez aussi imprimer 'BB'. Ce sera alors à l'intérieur de votre deuxième boucle, «si même».

for i < height
  if i % 2 is 0
    print 'BB'
  else
    print 'AA'
  print newline

Ainsi.

0
Wisani Salani 24 janv. 2017 à 13:06