阿宁最近对吃豆子感兴趣,阿宁想要用程序输出一下,但是图形化对于阿宁来说太难。因此他决定用字符,并且是方形的模样。
给一个正整数n,输出n级好豆子。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| 一级好豆子: ****** ****** ****** ***... ***... ***... 一级坏豆子: ...... ...... ...... ...*** ...*** ...*** 二级好豆子: 一级坏豆子 一级坏豆子 一级坏豆子 一级好豆子 二级坏豆子: 一级好豆子 一级好豆子 一级好豆子 一级坏豆子 ... x级好豆子: x-1级坏豆子 x-1级坏豆子 x-1级坏豆子 x-1级好豆子 x级坏豆子: x-1级好豆子 x-1级好豆子 x-1级好豆子 x-1级坏豆子 ...
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| #include<iostream> using namespace std;
char ans[1<<12][1<<12];
void cal(int x,int y,int n,int flag) { if(n==0) { if(flag) { for(int i=x;i<x+3;i++) for(int j=y;j<y+3;j++) ans[i][j]='.'; }else{ for(int i = x; i < x + 3; i++) for(int j = y; j < y + 3; j++) ans[i][j] = '*'; } return; } int t =1; for(int i=1;i<n;i++) t=t<<1; t=t*3; cal(x,y,n-1,flag^1); cal(x,y+t,n-1,flag^1); cal(x+t,y,n-1,flag^1); cal(x+t,y+t,n-1,flag); }
int main() { int n; cin>>n; cal(0,0,n,1); int t=1; for(int i=1;i<=n;i++) t<<=1; t*=3; for(int i=0;i<t;i++) cout<<ans[i]<<endl; return 0; }
|