神奇的杨辉三角
题目详情
1
1 1
1 0 1
1 1 1 1
1 0 0 0 1
1 1 0 0 1 1
1 0 1 0 1 0 1
1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 1
1 1 0 0 0 0 0 0 1 1
1 0 1 0 0 0 0 0 1 0 1
1 1 1 1 0 0 0 0 1 1 1 1
/\
/__\
/\ /\
/__\/__\
/\ /\
/__\ /__\
/\ /\ /\ /\
/__\/__\/__\/__\
居然有人能把这两者联系在一起,属实是太牛了呀!!
对应关系如下:
/\ ? 1
两空格 ? 0
/__\ ? 两个 1
代码如下:
#include
using namespace std;
int a[1025][1025];
inline void init()
{
a[1][1] = 1;
for (int i = 2; i <= 1024; i++)
{
for (int j = 1; j <= i; j++)
{
a[i][j] = a[i - 1][j] ^ a[i - 1][j - 1];
}
}
}
int main()
{
init();
int n; cin >> n;
int cnt = 1 << n;
for (int i = 1; i <= cnt; i++)
{
for (int j = 1; j <= (cnt - i); j++) cout << " ";
if (i & 1)
{
for (int j = 1; j <= i; j++) cout << (a[i][j]?"/\\":" "); /// \ 转义字符
}
else
{
for (int j = 1; j <= i; j += 2) cout << (a[i][j] ? "/__\\" : " ");
}
cout << endl;
}
return 0;
}