今天做洛谷上的南蛮图腾这道题,简直了,果然还是我太菜。我看了看题解,很多都是用字符数组倒着输出的,我试着写了写,没写出来,而且不好调试,我就简化了一下,决定用字符串来写,因为这题需要自我复制,所以关键的问题就是空格的控制,有点像我刚学c语言时的字符金字塔,这里只不过是把字符换成了字符串,代码如下:
#include <cstdio>
#include <iostream>
#include <string>
using namespace std;
string s[1024];
int x;
void pic (int t,int b,string ss)
{
if (t==x)
{
for (int i=0;i<b;i++)
cout << s[i] << "\n";
return ;
}
string s4="";
for (int i=b*2;i>=b;i--)
{
s[i]=s[i-b]+s4+s[i-b];
if (i%2==0&&2*b-i>=2)
s4=s4+" ";
}
for (int i=b-1;i>=0;i--)
{
s[i]=ss+s[i];