历届试题 打印十字图

  历届试题 打印十字图  

时间限制:1.0s   内存限制:256.0MB
      
问题描述

小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:

..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..

对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。

输入格式
一个正整数 n (n<30) 表示要求打印图形的层数。
输出格式
对应包围层数的该标志。
样例输入1
1
样例输出1
..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..
样例输入2
3
样例输出2
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
提示
请仔细观察样例,尤其要注意句点的数量和输出位置。
 
 #include<cstdio>
 #include<cstring>
  #include<iostream>
  #include<algorithm>
  #include<math.h>
  using namespace std;
  char a[1002][1002];
  int main()
  {
     int k,s,n;
     while(~scanf("%d",&k))
     {
         s=0; n=5+(4*k);
         for(int i=0;i<n;i++)
             for(int j=0;j<n;j++)
                 a[i][j]='.';
         for(int i=0;i<k;i++)
         {
             for(int j=s+2;j<n-2-s;j++)
             {
                 a[s][j]='$';
                 a[n-1-s][j]='$';
                 a[j][s]='$';
                 a[j][n-1-s]='$';
            }
             for(int j=s;j<=s+2;j++)
             {
                 a[j][s+2]='$';
                  a[s+2][j]='$';
         a[n-1-s-2][j]='$';
                 a[j][n-1-s-2]='$';
             }
             for(int j=n-1-s-2;j<=n-1-s;j++)
             {
                 a[n-1-s-2][j]='$';
                 a[j][n-1-s-2]='$';
                 a[j][s+2]='$';
                 a[s+2][j]='$';
             }
             s+=2;
         }s+=2;
         for(int j=s;j<=s+2;j++)
       {
             a[j][s]=a[s][j]='$';
         }
         for(int j=s;j>=s-2;j--)
         {
             a[j][s]=a[s][j]='$';
         }
         for(int i=0;i<n;i++)
             {
                 for(int j=0;j<n;j++)
                     printf("%c",a[i][j]);
                 printf("\n");
             }
     }
     return 0;
 }

 

posted @ 2014-03-10 20:26  哥的笑百度不到  阅读(740)  评论(0编辑  收藏  举报