Blu Bridge 컵 - 플롯 백 중첩(단순 반복)

1252 단어
***********
*         *
* ******* *
* *     * *
* * *** * *
* * * * * *
* * *** * *
* *     * *
* ******* *
*         *
***********
이 도형을 관찰하면, 그것은 일련의 정사각형의 별표 네모난 테두리를 끼워 넣은 것이다.
위의 예에서 가장 바깥쪽 테두리의 가장자리는 11이다.
이 문제의 임무는 표준 입력에서 정수 n(1프로그램은 끼워 넣은 회자형 별표 네모난 상자를 생성합니다.그 가장 바깥쪽 네모난 테두리의 가장자리는 n이다
예:
입력:

프로그램 출력:
*****
*   *
* * *
*   *
*****
입력: 6
프로그램 출력:
******
*    *
* ** *
* ** *
*    *
******
사실은 간단한 귀속이지만, 이런 문제는 이렇게 시계를 맞추는 것이 아주 좋은 것 같다...
#include <iostream>
#include <memory.h>
using namespace std;
char map[101][101];
void paint(int begin,int end){
	if(end-begin+1<=0)  return;  //  
	for(int i=begin;i<=end;i++)  //  
	   map[begin][i]=map[end][i]='*';
	for(int i=begin+1;i<=end-1;i++)  //  
	   map[i][begin]=map[i][end]='*';  
  	paint(begin+=2,end-=2);    
}
int main(){
	int n,i,j;
	while(cin>>n){
		memset(map,' ',sizeof(map));
		paint(0,n-1);
		for(i=0;i<n;i++){
		  for(j=0;j<n;j++)
		      cout<<map[i][j];
		  cout<<endl;
		}
	}
	return 0;
}

좋은 웹페이지 즐겨찾기