[Naver 지식인] 알파벳으로 삼각형 출력하기 질문합니다

개발 노트/지식 In  2013.03.16 17:08



안녕하세요 명월입니다.


먼저 지식인 질문 내용입니다.



http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=169178867


이 질문은 단순한 알고리즘 코드입니다.

  

#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
	 int n;
	 printf("출력할 줄 수를 입력하세요 : ");
	 scanf("%d",&n);
	 
	 char alpha = 'A' ;
	 for(	int i=0 , count = 1		; 
			i < n						; 
			i++ , count += 2		)
	 {
		 for(int j = 0; j < n-i; j++)
		 {
			 printf(" ");
		 }
		 for(int j=0; j < count ; j++)
		 {
			 if ( alpha > 'Z')
			 {
				 alpha = 'A';
			 }
			 printf("%c",alpha ++);
		 }
		 printf("\r\n");
	 }
	 return 0;
}


단순히 생각하면 먼저 줄 수를 계산하는 for문이 작성 되겠습니다.

그리고 각 줄 마다 어떤 형태인지 알아 보겠습니다.

먼저 예로 입력 줄수가 5라고 가정할때.

첫번째 줄은 앞에 4칸의 공백이 존재하고 A 가 쓰입니다.

두번째 줄은 앞에 3칸의 공백이 존재하고 BCD (세글자) 가 쓰입니다.

세번째 줄은 앞에 2칸의 공백이 존재하고 EFGHI (다섯글자)가 쓰이겠습니다.

...


앞의 공백은 최초 입력 받은 값 5를 기준으로 한개씩 감소하는 형태 입니다.

글자는 첫번째 1로 시작하여 두개씩 늘어나는 형태이네요.

알파벳은 순서대로 A -> Z, Z 이상의 값이 되면 A로 돌아가는 형태 입니다.


결과 화면입니다.



예제 소스입니다.


Kin20130316.zip



댓글 2개가 달렸습니다.
댓글쓰기
  1. Yigs
    2013.03.25 22:08 신고 |  수정/삭제  댓글쓰기

    오~ 신기하네요 .