原题洛谷P1498。
#include<cstdio> #include<iostream> using namespace std; int n,f[1050][1050],ly; void init(){ scanf("%d",&n); ly=1<<n; for(int i=1;i<=1<<n;i++){ f[i][1]=f[i][i]=1; } for(int i=3;i<=1<<n;i++){ for(int j=2;j<i;j++){ f[i][j]=f[i-1][j-1]+f[i-1][j]; f[i][j]%=2; } } return; } int main(){ init(); for(int i=1;i<=1<<n;i++){ for(int j=0;j<ly-i;j++) cout<<‘ ‘; bool flag=0; for(int j=1;j<=i;j++){ if(f[i][j]%2==1){ if(i%2==1) cout<<"/"<<(char)92; else{ if(flag==0){ cout<<"/_"; flag=1; } else{ cout<<"_"<<(char)92; flag=0; } } } else cout<<" "; } cout<<endl; } return 0; }