由于不允许带U盘拷贝题目,所以目前就没题目了。当时花了我将近一个小时的时间。

 1 #include<stdio.h>
 2 #include<math.h> 
 3 char flag[50][50]={0};
 4 void fun(int m,int k)
 5 {
 6     if(k<0) return;
 7     int end=4*k+4+m;
 8     for(int i=m+2;i<=end-2;i++)
 9         flag[m][i]=flag[end][i]=1;
10     flag[m+1][m+2]=flag[m+1][end-2]=1;
11     flag[m+2][m+2]=flag[m+2][end-2]=1;
12     flag[m+2][m+1]=flag[m+2][end-1]=1;
13     flag[end-1][m+2]=flag[end-1][end-2]=1;
14     flag[end-2][m+2]=flag[end-2][end-2]=1;
15     flag[end-2][m+1]=flag[end-2][end-1]=1;
16     for(int i=m+2;i<=end-2;i++)
17         flag[i][m]=flag[i][end]=1;
18     fun(m+2,k-1);
19 }
20 int main()
21 {
22     int m=1,k=10;
23     fun(m,k);
24     int n=4*k+4+m;
25     for(int i=1;i<=n;i++)
26     {
27         for(int j=1;j<=n;j++)
28             if(flag[i][j]) putchar('$');
29             else putchar('.');
30         printf("\n");
31     }
32     getchar();
33     return 0;
34 }