2016-01-26 7 views
0

The GoalКак отформатировать эти вложенные циклы в Java?

Hello! Я пытаюсь научиться использовать вложенные для циклов в AP Computer Science в школе, и у меня возникают проблемы с этой лабораторией:/Я добился определенного прогресса в получении правильного результата. Однако у меня возникают проблемы на моем пути. Изображение выше показывает, что мне нужно делать.

Образец данных:

С 4

В 5

Образец Выход:

КЦИК DDD ЕЕ Р

КЦИК DDD ЕЕ

КЦИК DDD

КПКГ


AAAAA BBBB CCC DD E

AAAAA BBBB CCC DD

AAAAA BBBB CCC

AAAAA BBBB

AAAAA

также выше I/O мне нужно.

Код я написал до сих пор выглядит следующим образом:

import java.util.Scanner; 

public class LettersAndNumbers { 
    public static void main(String args []) { 
    int times; 
    String character;//I know this sounds stupid 
    Scanner scan = new Scanner(System.in); 
    System.out.print("Enter a character and integer"); 
    character = scan.nextLine(); 
    times = scan.nextInt(); 

    String output =""; 
    for(int i=times; i>=0;i--) { 
     for(int j=i;j>=1;j--){ 
      for(int x = j; x>=1; x--) 
      { 
       output=output + character; 


      } 
      output=output+" "; 

     }   
     output=output +'\n'; 
     int charValue = character.charAt(0); 
     character = String.valueOf((char) (charValue + 1));  
    } 
    System.out.println(output); 
    } 
} 

Это дает следующий вывод (я получаю близко):

Введите символ и целое C

CCCC CCC CC C

DDD DD D

EE E

F

Любая помощь вы можете предоставить высоко оценили!

ответ

0

Рабочий раствор:

Scanner scanner = new Scanner(System.in); 
    String userInputChar=scanner.next(); 
    char userChar=userInputChar.charAt(0);  
    int userInputDigit=scanner.nextInt();  
    for(int i=1;i<=userInputDigit;i++){ 
     char charProcess=userChar;   
     for(int j=(userInputDigit-i)+1,l=userInputDigit;j>=1;j--,l--){    
      for(int k=l;k>=1;k--){ 
       System.out.print(charProcess); 
      } 
      charProcess=(char) (charProcess+1); 
      System.out.print(" ");    
     } 
     System.out.print("\n"); 
    } 
    scanner.close(); 

Позвольте мне знать, как она идет. Удачи.

1

Для сканера я использовал бы useDelimiter ("\ s") (что означает разделение на пробелы) и next(), чтобы получить символ и int для строки. Я оставлю это для вас, чтобы разобраться по своему усмотрению. Для его части цикла. Предполагая, что у вас есть стартовый персонаж и время.Вы можете распечатать

for(int i = times; i > 0; i--){ 
    for(int j = 0; j < i; j++){ 
     int numRepeats = i - j; 
     String output = ""; 
     String repeatedCharacter = String.valueOf(startingCharacter + j); 
     for(int k = 0; k < numRepeats; k++){ 
      output += repeatedCharacter; 
     } 
     System.out.print(output + " "); 
    } 
    System.out.println(""); 
} 
0

Ок, вот две подсказки:

1) character = String.valueOf((char) (charValue + 1)); Может проверить, есть ли лучшее место для этого заявления?

2) Может быть, вы можете использовать что-то для переменной «символ», кроме строки ...

удачи!