博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HPU第四次积分赛-K :方框(水题,打印图形)
阅读量:6079 次
发布时间:2019-06-20

本文共 1803 字,大约阅读时间需要 6 分钟。

方框

描述

用'*'打印出一个nxn的字符图形(1<=n<=100).

输入

多组输入。每行输入一个n,输入EOF结束文件.

输出

输出一个满足题意的图形.

输入样例 1 

12561011

输出样例 1

***********   ** * **   *************    ** ** ** ** **    ******************        ** ****** ** *    * ** * ** * ** * ** * ** *    * ** ****** **        ***********************         ** ******* ** *     * ** * *** * ** * * * * ** * *** * ** *     * ** ******* **         ************

思路

就是按照给出的样例找规律,然后n*n的图形

可以明显的看出,这个图形的特点是一圈被全是*,一圈全是空白。发现了这个规律的话可以用模拟来做(学长和一些用模拟AC的大佬说的,但是感觉模拟好麻烦,不太好写)

再仔细观察可以发现:这个图形是个对称的(废话)。然后从第三行开始往后,每一行都是根据上上一行的字符串复制过来,然后将上上一行的连在一起的空格或者*的第二个和倒数第二个给改变(*变成空格,空格变成*)。最后输出的时候判断奇偶,对称输出就可以了

AC代码

#include
#define ll long long#define ms(a) memset(a,0,sizeof(a))using namespace std;const int maxn=1e6+10;char ch[110][110];int main(){ ios::sync_with_stdio(false); int n; while(cin>>n) { if(n==1) { cout<<"*"<
2&&i%2) { // 本来是用strcmp来复制的,但是好像二维的字符串函数不能用,复制出来的全是空行 for(int k=1;k<=n;k++) { ch[i][k]=ch[i-2][k]; } ch[i][cnt]=' '; ch[i][n-cnt+1]=' '; cnt++; } if(i>2&&i%2==0) { for(int k=1;k<=n;k++) { ch[i][k]=ch[i-2][k]; } ch[i][cnt]='*'; ch[i][n-cnt+1]='*'; cnt++; } } for(int i=1;i<=res;i++) { for(int j=1;j<=n;j++) cout<
=1;i--) { for(int j=1;j<=n;j++) cout<
=1;i--) { for(int j=1;j<=n;j++) cout<

 

转载于:https://www.cnblogs.com/Friends-A/p/10324397.html

你可能感兴趣的文章
java基础---->正则表达式
查看>>
2.2013/06/13_log(n)+1
查看>>
关于加载iframe时进度条不消失的问题
查看>>
poj 3984迷宫问题【广搜】
查看>>
oracle ORA-01840:输入值对于日期格式不够长
查看>>
python基础知识~logger模块
查看>>
SIP入门(二):建立SIPserver
查看>>
Servlet3.0的异步
查看>>
WebService连接postgresql( 失败尝试)
查看>>
从头认识java-13.11 对照数组与泛型容器,观察类型擦除给泛型容器带来什么问题?...
查看>>
Python-MacOSX下SIP引起的pip权限问题解决方案(非取消SIP机制)
查看>>
从MFQ方法到需求分析
查看>>
android.view.WindowManager$BadTokenException: Unable to add window
查看>>
HDU5012:Dice(bfs模板)
查看>>
iphone openssh
查看>>
Linux下MEncoder的编译
查看>>
Javascript中闭包(Closure)的探索(一)-基本概念
查看>>
spark高级排序彻底解秘
查看>>
ylbtech-LanguageSamples-PartialTypes(部分类型)
查看>>
福建省促进大数据发展:变分散式管理为统筹集中式管理
查看>>