圖騰 - 題解

Jerrycyx發表於2024-07-28

圖騰

時間限制:C/C++ 1000MS,其他語言 2000MS
記憶體限制:C/C++ 128MB,其他語言 256MB

描述

給定一個正整數 \(n\),參考輸出樣例,輸出圖形。
\(1≤n≤10\)

輸入描述

每個資料輸入一個正整數 \(n\),表示圖騰的大小.

輸出描述

這個大小的圖騰.

用例輸入 1

2

用例輸出 1

   /\
  /__\
 /\  /\
/__\/__\

用例輸入 2

3

用例輸出 2

       /\
      /__\
     /\  /\
    /__\/__\
   /\      /\
  /__\    /__\
 /\  /\  /\  /\
/__\/__\/__\/__\

程式碼

#include<cstdio>
#include<string>
using namespace std;

int N;
string str[2050];

inline void Init()
{
	str[0]={" /\\ "};
	str[1]={"/__\\"};
}
void make_triangle(int n)
{
	for(int i=0;i<1<<(n-1);i++)
		str[i+(1<<(n-1))]=str[i]+str[i];
	for(int i=0;i<1<<(n-1);i++)
	{
		str[i].insert(0,1<<(n-1),' ');
		str[i].insert(str[i].length(),1<<(n-1),' ');
	}
	if(n<N) make_triangle(n+1);
	return;
}

int main()
{
	scanf("%d",&N);
	Init();
	if(N>=2) make_triangle(2);
	for(int i=0;i<1<<N;i++)
		printf("%s\n",str[i].c_str());
	return 0;
}

相關文章