首页 > 其他 > 详细

历届试题 打印十字图

时间:2014-03-10 21:59:33      阅读:619      评论:0      收藏:0      [点我收藏+]

  历届试题 打印十字图  

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

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

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

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

输入格式
一个正整数 n (n<30) 表示要求打印图形的层数。
输出格式
对应包围层数的该标志。
样例输入1
1
样例输出1
..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..
样例输入2
3
样例输出2
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
提示
请仔细观察样例,尤其要注意句点的数量和输出位置。
 
bubuko.com,布布扣
 #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;
 }
bubuko.com,布布扣

 

历届试题 打印十字图,布布扣,bubuko.com

历届试题 打印十字图

原文:http://www.cnblogs.com/Deng1185246160/p/3592618.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!