XO矩阵-题解

先读题:

故事背景:

小A是一个系列电影《X战警》的忠实粉丝,自从老师在信息课上教会了你打印金字塔后,小A就一直缠着你为他打印一个xo矩阵,经过小A的软磨硬泡、死缠烂打,你终于答应了给小A打印xo矩阵。

题目描述:

输入m,输出 (2\times m+1) (2\times m+1) 列的xo组成的矩形。

输入样例1:

2

输出样例1:

xooox 
oxoxo
ooxoo
oxoxo
xooox

输入样例2:

3

输出样例2:

xooooox
oxoooxo
ooxoxoo
oooxooo
ooxoxoo
oxoooxo
xooooox

约定:
2 < m < 35

我们要知道如何循环打印这个X矩阵:

  1. 判断是否是 i = j 的情况:位置情况是在对角线上,那么这个的判断条件就是 i == j
    如下:
  2. 或者是另一种情况: 判断是否$i + j = n - 1$ 。
    这种情况下也在对角线上。
    所以我们知道了这两种情况,写出一个判断的条件:
if (i + j == n - 1 || i == j) cout << 'x';
else cout << 'o';

记得每输出一行,加上一个换行\n,或者是<<endl
再加上循环,就是核心代码了:

for (int i = 0;i < m;i++){
    for (int j = 0;j < m;i++){
        if (i + n == n - 1 || i == j) cout << 'x';
        else cout << 'o';
    }
    cout << endl;
}

这是我的第一篇题解,有误还请多多指正 :grinning: