原题链接:特殊的正方形 - 题目 - Daimayuan Online Judge

解题思路:本题只要按照要求输出即可。需要注意的是因为其计数是从外向内,所以上半部分与下半部分的计数方向相反,左右亦是如此。

如果不切换计数模式,可以在通过中线时交换两个符号的奇偶(因为最中间的行列都是连续两个相同符号)。

在供参考的AC代码中,奇数输出部分采用了前者,更换了计数方向。而偶数输出部分则采用后者,更换了符号的奇偶对应。

AC代码:

#include<bits/stdc++.h>
using namespace std;
int n;
void evenNum(){//偶数行列输出函数 for(int i=1;i<=n;i++){//行数循环 for(int j=1;j<=n;j++){//列数循环 if((j>=i&&j<=n+1-i&&i<=n/2)||(j<=i&&j>=n+1-i&&i>=n/2)){//输出每一圈的上下边框 if(i<=n/2){//判断上下,上半部分从1到n/2的部分,奇数行是+,偶数行是. if(i%2==1) printf("+");else printf(".");}else {//下半部分从n/2+1到n的部分,因为n/2+1算作第一行 //但是上下对称,如果上一行是+,这一行也是+,反之亦然。中间两行重复输出同一个字符两次,奇偶互换。所以奇数行是.,偶数行是+ if(i%2==1) printf(".");else printf("+");}}else{//如果不是圈的上下边框,输出左右边框 if(j<=n/2){//判断左右,左半部分从1到n/2的部分,奇数列是+,偶数列是. if(j%2==1) printf("+");else printf(".");}else{//左半部分从n/2+1到n的部分,因为n/2+1算作第一行列 //但是左右对称,如果上一列是+,这一列也是+,反之亦然。中间两列重复输出同一个字符两次,奇偶互换。所以奇数行是.,偶数行是+ if(j%2==1) printf(".");else printf("+");}}}printf("\n");}
}
void oddNum(){for(int i=1;i<=n;i++){//行循环 if(2*i-1==n){//如果是最中间的一行特殊处理 printf("+");//从左往右起始必定是+ for(int j=1;j<n;j+=2){//中间一行必定两符号间隔输出 printf(".+");}printf("\n");continue;}for(int j=1;j<=n;j++){//不是中间一行则进入该循环 if((j>=i&&j<=n+1-i&&i<=n/2)||(j<=i&&j>=n+1-i&&i>n/2+1)){//输出每一圈的上下边框 if(i<=n/2){//如果是上半部分按照从上往下计数,规则与题面一致 if(i%2==1) printf("+");else printf(".");}else{//如果是下半部分按照从下往上计数,规则与题面一致if((n+1-i)%2==1) printf("+");else printf(".");}}else{if(j<=n/2){//如果是左半部分按照从左往右计数,规则与题面一致if(j%2==1) printf("+");else printf(".");}else{//如果是右半部分按照从右往左计数,规则与题面一致 if((n+1-j)%2==1) printf("+");else printf(".");}}}printf("\n");}
}
int main(){cin>>n;if(n%2==0){//如果是偶数行列,执行以下函数 evenNum();}else{//如果是奇数行列,执行以下函数 oddNum()
;   }return 0;
} 

[海豹海边爆]Daimayuan386相关推荐

  1. [海豹海边爆]Daimayuan554

    原题链接:整齐的数组 - 题目 - Daimayuan Online Judge 解题思路:首先我们考虑不输出-1的情况.假设所有的数字都减到数组中最小的值,那么所有的差(不包含0)的最大公因数就是我 ...

  2. [海豹海边爆]文远知行杯第16届E题

    原题链接:登录-专业IT笔试面试备考平台_牛客网 解题思路:因为一次最多只能爬10层塔,所以对每一个结点都可以遍历其10步内的情况.如果在没有出现过生命值归0的情况下,遇到了生命值为1的情况,说明是当 ...

  3. 易于使用的人工智能_使AI更易于访问

    易于使用的人工智能 重点 (Top highlight) 人工智能 (Artificial Intelligence) According to McKinsey, a lack of underst ...

  4. 7天吸粉111万,条条视频都爆款,无穷小亮的科普日常是如何做到的?!

    今天给大家拆解一个抖音千万级粉丝的账号@无穷小亮的科普日常,这是一个视频内容并不复杂,更新频率也不高.但总是有很多内容能够成为爆款的抖音科普类账号. 这个账号甚至实现了七天吸粉111万的成绩,让无穷小 ...

  5. 爆强笑话,笑不翻你才怪我吐血!!!

    1.买橘子,老板:一块五一斤.我:太贵了,五块钱三斤吧.老板:不行不行. 2.以前考试老师发卷子,后边的女生多拿了一张,高呼"老师,我有了,我有了"结果坐他旁边的男生说道" ...

  6. 2004世界中文BBS爆笑签名档

    1.很久很久以前,有一群人人不离马,身不离甲,专以灌水为生,人称"马甲军".我在他们当中排行老六,人称"马六甲".很多年后,我们到南洋做生意,当地人都非常喜欢穿 ...

  7. 2019年暑期档最大的爆款《哪吒之魔童降世》

    不知不觉已经立秋啦,回首整个暑期档,最大的爆款非<哪吒之魔童降世>莫属啦! 影片上映到现在总票房已经突破30亿,接连超越<西游记之大圣归来>.<疯狂动物城>的记录, ...

  8. 【Shopee市场周报】Shopee2022沙滩休闲时尚装备热卖爆品分享

    夏天去哪里玩?当然是去海边!东南亚部分市场目前已放松防疫管制,夏季海边沙滩度假热潮即将掀起.小编已整理好了马来西亚.泰国2大东南亚市场的最新沙滩主题热销品榜单,赶紧看看有哪些类目能够抢占蓝海新机吧! ...

  9. 打造稳健的MT4 黄金交易策略,挑战1年翻3倍不爆仓的量化交易EA(附mql4程序)

    附上两个ea: 1.easy deal: 源码iEasy-Deal: mt4/mt5 黄金自动量化交易EA,高频交易单单清,没有浮亏 (gitee.com) 2.Nerve Knife(本文ea) ( ...

最新文章

  1. Spring Boot 中 @EnableXXX 注解的驱动逻辑
  2. servlet生命周期
  3. 开发日记-20190521 关键词 bash的几个初始化文件
  4. 假设一个半衰期为0的对象
  5. soap php 分开类,PHP SoapClient类型映射的行为有所不同
  6. Map与Set的经典OJ题
  7. python监控程序编写_05-python进阶-简单监控程序开发
  8. 小白视角看ros_openvino_toolkit
  9. python实现最长公共子序列的求解
  10. Js中 关于top、clientTop、scrollTop、offsetTop的用法
  11. 正弦定理和余弦定理_那些让你加快解题速度的高中数学公式-26 利用三正弦、三余弦定理快速解题...
  12. 福建副省长:加快推进区块链应用场景,积极打造数字应用第一省
  13. Spring Cloud入门一 Eureka Server
  14. 使用WMI筛选器管理组策略应用
  15. 排序算法系列之归并排序
  16. [导入]哪种图像格式最好?
  17. 逆天!百度AI音箱重磅升级:最大梦想实现
  18. Atitit 数据查询法 目录 1. 数据查询语言QL (推荐) 1 1.1. Sql 1 1.2. 对象查询语言(OQL) 1 1.3. Atitit QL查询语言总结Jpql Ongl
  19. python上传文件到oss_python实现上传文件到OSS
  20. DEA_Malmquist指数模型学习笔记

热门文章

  1. 更改PVE登录IP管理地址
  2. kindle格式转换,.azw格式转换
  3. 水沟滑模机施工中技术储备和效果的相得益彰
  4. node-xlsx 读取Excel内容详解
  5. 【k8s】【Prometheus】
  6. 708 循环有序列表的插入
  7. KDGK-F断路器机械特性测试仪
  8. python_图片透明化
  9. 华为鸿蒙手机发布,宣布!魅族携照明类产品加入华为鸿蒙生态
  10. 考研英语复试-常用的口语表达句型