利用二进制模2杨辉三角求值,不知道为什么只对3个点,其余点提示超出输出限制,是因为行尾空格吗?
#include<iostream>
#include<algorithm>
using namespace std;
int n;
#define getit(A,i) ((A >> (i << 1)) & 3)
int main()
{
cin >> n;
unsigned long long A = 1;
n = 1 << n;
for(int k = 1;k <= n;k++)
{
for(int i = 1;i <= n - k;i++)
cout << " ";
for(int i = 0;i < k;i++)
if(getit(A,i) == 1)
cout << "/\\ ";
else if(getit(A,i) == 0)
cout << " ";
else if(getit(A,i) == 3)
cout << "/__\\";
cout << endl;
A = (A << 1) ^ A;
}
}