티스토리 뷰
저번 글에서 그린 다이아몬드는 C#을 이용하였으며, for문이 세개 사용되었었다.
for문을 2개로 줄여보았다.
#include <stdio.h>
int main(void){
int num, i, j;
scanf("%d", &num);
int m=num/2 + 1, k=m;
for(i=0; i<num; i++){
for(j=1; j<=k; j++){ //1부터 k까지
if(j<m) //j가 m보다 작으면 띄어쓰기 출력
printf(" ");
else //j가 m보다 크고 k보다 작을때 까지 별 출력
printf("*");
}
if(i<num/2){ //num의 절반을 분기로 나눔
m--; k++;
}
else{
m++; k--;
}
printf("\n");
}
}
출력 부분을 if로 분기를 나누어 for문을 하나 줄였다.
+++
절댓값을 이용하여 코드를 줄였다.
#include <stdio.h>
#include <math.h>
int main(void){
int num, i, j;
scanf("%d", &num);
int m=num/2;
for(i=0; i<num; i++){ //세로
for(j=0; j<num-abs(m); j++){ //가로 : num-m의 절댓값까지 실행
if(j<abs(m)) //j가 m의 절댓값보다 작을 때 공백 출력
printf(" ");
else //그 외엔 별 출력
printf("*");
}
m--; //m감소
printf("\n");
}
}
이 방법이 훨씬 좋은듯함
=> 절댓값을 이용한 코드 그림
'프로그래밍 > 알고리즘' 카테고리의 다른 글
문자열 순열 알고리즘 JAVA (0) | 2020.11.16 |
---|---|
C 가위바위보 게임 (0) | 2019.08.20 |
Python 숫자 야구 게임 (1) | 2019.07.29 |
C# 로또번호 (2) | 2019.06.20 |
C# 다이아몬드 (5) | 2019.06.20 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday