알고리즘 훈련 출력 미터 자형

1222 단어 알고리즘C 언어
입력 한 정수 n (1m 자형 은 하나 (2n - 1) * (2n - 1) 의 행렬 로 구성 되 며, 행렬 은 대문자 A 에서 시작 하 는 n 자 모 를 포함한다.
예 를 들 어 n = 3 시 에는 A, B, C, n = 4 시 를 포함 하고 A, B, C, D 를 포함한다.
행렬 의 정 중앙 은 n 개의 자모 중에서 사전 순서 가 가장 큰 것 이다. 이 자모 부터 서북, 정 북, 동북, 정서, 정동, 서남, 정 남, 동남 8 개 방향 을 따라 각각 대문자 로 구 성 된 직선 이 있다. 또한 직선 상의 자 모 는 사전 순서에 따라 대문자 A 까지 차례대로 줄어든다.
행렬 의 다른 위 치 는 영문 마침표 로 채 워 집 니 다.
샘플 입력 1
  3
샘플 출력 1
  A.A.A
  .BBB.
  ABCBA
  .BBB.
  A.A.A
샘플 입력 2
  4
샘플 출력 2
  A..A..A
  .B.B.B.
  ..CCC..
  ABCDCBA
  ..CCC..
  .B.B.B.
  A..A..A
#include <stdio.h>

int draw(int i, int j, int m)
{
	int r;
	
	if(i > m / 2){
		i = m - i - 1;
	}
	if(j > m / 2){
		j = m - j - 1;
	}
	if(i == m / 2){
		i = j;
	}
	if(j == m / 2){
		j = i;
	}
	if(i == j){
		r = i;
	}else{
		r = -1;
	}
	
	return r;
}

int main()
{
	int i, j, k, m, n;
	
	scanf("%d", &n);

	m = 2 * n -1;

	for(i = 0; i < m; i ++){
		for(j = 0; j < m; j ++){
			
			k = draw(i, j, m);
			
			if(k < 0){
				printf(".");
			}else{
				printf("%c", 'A' + k);
			}
		}
		
		printf("
"); } return 0; }

좋은 웹페이지 즐겨찾기