문제
별찍기(6) (이등변삼각형)
*
**
***
****
*****
******
*******
********
*********
**********
*********
********
*******
******
*****
****
***
**
*
for문(반복문)을 사용해 위 모양을 출력해보자 (10번째 줄에 별 10개)
실행화면
코드
public class star6 {
public static void main(String[] args) {
int k = 0; //라인 수를 담당한다. 라인 수에 따른 i의 변화를 나타내게 도와준다.
for(int j = 1; j<21; j++) {
for (int i = 0; i<=k; i++) { //i는 k를 이용해 *의 갯수를 조절한다.
System.out.printf("*");
}
System.out.printf("\n");
if (j<10) //10번째 줄까지는 후위증가
k++;
else //10번째 줄 이후로는 후위감소
k--;
}
}
}
코드 설명
기본이 되는 코드는
*
**
***
****
*****
******
*******
********
*********
********** ← 이 코드.
라인을 지정해두고, 그 라인을 기준으로 별의 갯수가 달라져야 한다. 이 문제에서는 10번째 라인을 지정했고, 10번째 라인을 기점으로 10번 째 라인 이전에는 별의 개수가 하나씩 증가, 이후로는 별의 개수가 하나씩 줄어든다.
줄수에 따라 * 의 개수가 변화해야 하므로 줄수담당변수 k를 이용하여 i의 조건을 조절해 보자.
j = 1 일때 i = 0, 1, 2, 3, 4... k=0 (i보다 k가 크거나 같을 때 * 찍힘)
→ i = 0일때 한번 찍힘
j =2 일 때 i = 0, 1, 2, 3, 4... k=1 (k++)
→ i = 0, 1일때 찍힘
.
.
.
j = 10일 때 i = 0, 1, 2, 3, 4... k=9 (k++ 마지막)
→ i = 0, 1, 2, 3, 4, ...., 9일때 찍힘
j = 11일 때 i = 0, 1, 2, 3, 4... k=10 (k--시작)
→ i = 0, 1, 2, 3, 4, ...., 9, 10일때 찍힘
j = 12일 때 i = 0, 1, 2, 3, 4... k=9 (k--)
→ i = 0, 1, 2, 3, 4, ...., 9일때 찍힘
.
.
.
j = 20일 때 i = 0, 1, 2, 3, 4... k=0
→ i = 0 일때 찍힘
'프로그래밍 > Java' 카테고리의 다른 글
[자바] hello world 출력해보기 (0) | 2020.11.09 |
---|---|
자바 개발환경 구축(이클립스, jdk 다운로드) (0) | 2020.11.09 |
[자바] 배열을 입력받아 가장 큰 수 출력, 오름차순, 내림차순 정렬 (0) | 2019.07.15 |
[자바] 별 찍기 뒤집힌 직각삼각형(이중for문)(+알고리즘) -3 (0) | 2019.07.14 |
[자바] 별찍기 공백있는 직각삼각형(이중for문)(+알고리즘) -4 (0) | 2019.07.14 |
[자바] 별 찍기 직각삼각형(이중for문)(+알고리즘) -2 (0) | 2019.07.13 |