S001-AC.cc
562 Bytes
#include <iostream>
#include <cmath>
#include <string>
using namespace std;
void bars(string* array, int lowerLimit, int upperLimit, int n)
{
array[(upperLimit+lowerLimit)/2].append(n,'*');
if(lowerLimit == upperLimit)
{
return;
}
bars(array,lowerLimit,(upperLimit+lowerLimit)/2 - 1,n-1);
bars(array,(upperLimit+lowerLimit)/2 +1,upperLimit,n-1);
}
int main()
{
int n;
cin >> n;
string* array = new string[(int)(pow(2,n) - 1)];
bars(array,0,pow(2,n) - 2,n);
for(int i = 0; i < (pow(2,n) - 1); i++)
{
cout << array[i] << endl;
}
return 0;
}