문제풀이(2)
오른쪽 직각삼각형 출력하기
*
**
***
****
*****
******
#include <stdio.h>
int n;
int main(){
scanf("%d", &n);
for (int i = 0; i < n; i++) { //(1)
for (int j = n-1; j >= i; j--) { //(2)
putchar('\t');
}
for (int k = 0; k <= i; k++) { //(3)
printf("*\t");
}
putchar('\n');
}
return 0;
}
(1): 줄을 바꿔주는 for문(행의 개수)
(2): 공백을 출력하는 for문(왼쪽으로 정렬하기 위함)
(3): 별을 출력하는 for문
(1): (3)의 for문에서 별의 갯수를 상관하는 for문
이 for문의 i의 값과 별을 찍어야하는 갯수가 같다!
(2): 0 1 2 3 4 5 6 (행 기준)중 0 1 2 3 4 5 까지 공백이 들어가야하고 6번째 줄에는 별이 6개가 들어가야 한다!
규칙을 찾으면 된다!
00000* 공백 5 별 1
0000** 공백 4 별 2
000*** 공백 3 별 3
00**** 공백 2 별 4
0***** 공백 1 별 5
****** 공백 0 별 6
>>0은 공백을 의미
더보기
총 찍어야하는 별의 개수가 6개일 경우
첫째줄의 별이 1개라면, 나머지 5개의 공간에는 공백이 출력되어야 한다.
두번째줄에는? 공백4개 + *2개 이런식으로 반복해준다.
그렇기때문에, j는 n-1개부터 해서 하나씩 줄여가고 i는 개수를 늘려간다.
'C언어' 카테고리의 다른 글
[배열] 최댓값을 구하고, 몇번째 수인지 구하기 (0) | 2021.01.09 |
---|---|
[배열 활용하기] 역으로 출력하기 (0) | 2021.01.09 |
소수 판별식 (0) | 2021.01.06 |
이중 for문에 대한 이해(3) (0) | 2021.01.06 |
이중 for문에 대한 이해 (0) | 2021.01.06 |