Windows Of CCPC
#include<stdio.h> const int maxn=1e3+100; int a[maxn][maxn]; void dfs(int x) { if(x==1024) return; for(int i=1;i<=x;i++) { for(int j=x+1;j<=x*2;j++) a[i][j]=a[i][j-x]; } for(int i=x+1;i<=2*x;i++) { for(int j=x+1;j<=2*x;j++) a[i][j]=a[i-x][j-x]; } for(int i=x+1;i<=2*x;i++) { for(int j=1;j<=x;j++) a[i][j]=(a[i-x][j]^1); } dfs(2*x); } int b[11]={0,2,4,8,16,32,64,128,256,512,1024}; int main() { a[1][1]=1; a[1][2]=1; a[2][1]=0; a[2][2]=1; dfs(2); int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); int se=b[n]; for(int i=1;i<=se;i++) { for(int j=1;j<=se;j++) if(a[i][j]==1) printf("C"); else printf("P"); printf("\n"); } } }
递归实现
浙公网安备 33010602011771号