2013-10-19 5 views
0

사용자가 입력 한 숫자에 따라이 패턴을 생성해야합니다. 사용자가 입력 한 숫자는 각 행의 행과 별의 수에 해당합니다.for 루프를 사용하는 패턴

* 
    ** 
    *** 
**** 
***** 

중첩 된 for 루프 만 사용하고 printf()는 사용할 수 없습니다. 이것은 내가 작업하고있는 코드의 일부일뿐입니다.

for (int row = 1; row <= size; row++) { 
      for (int column = 1; column <row; column++) { 
       System.out.print(" "); 
      } 
      for (int column = 1; column <= row; column++) { 
      System.out.print("*"); 
     } 
     System.out.println(); 

    } 

위와 같이 출력하지 못하는 것 같습니다. 대신 나는 이것을 얻는다 :

* 
** 
    *** 
    **** 
    ***** 

누군가 내가 나에게해야할 것에 관해서 나에게 암시를 줄 수 있었 을까? 나는 2 시간을 보냈지 만 아직도 그것을 이해할 수 없다.

답변

1

각 행에 최대 size자를 출력해야합니다. 그래서 크기 = 5, 세 번째 줄에 출력 별 세 개있는 경우, 당신은 size-row 공간을 필요로하는 경우 => 5-3 = 2 코드에서

:

for (int row = 1; row <= size; row++) { 
    for (int column = 1; column <= size-row; column++) { 
     System.out.print(" "); 
    } 
    for (int column = 1; column <= row; column++) { 
     System.out.print("*"); 
    } 
    System.out.println(); 
} 

샘플 : http://ideone.com/hC5HDQ

+0

도움 주셔서 감사합니다 :). – AvP

0

더 많은 공백으로 시작한 다음 더 이상 공백이 없어 질 때까지 공백을 제거하고 싶습니다. 그러나 공백을 제거하는 동안 추가하고 "*"를 추가하려고합니다. 따라서 제거 된 모든 공간에 대해 "*"를 추가하십시오.

0

시도 이

int i=5; 

do{ 
    int j=5; 

    while(j>i){ 
     System.out.print("*"); 
     j--; 
    } 
    System.out.println(); 
    i--; 

}while(i>0); 
관련 문제