先读题:
故事背景:
小A是一个系列电影《X战警》的忠实粉丝,自从老师在信息课上教会了你打印金字塔后,小A就一直缠着你为他打印一个xo矩阵,经过小A的软磨硬泡、死缠烂打,你终于答应了给小A打印xo矩阵。
题目描述:
输入m,输出 (2\times m+1) 行 (2\times m+1) 列的x
和o
组成的矩形。
输入样例1:
2
输出样例1:
xooox
oxoxo
ooxoo
oxoxo
xooox
输入样例2:
3
输出样例2:
xooooox
oxoooxo
ooxoxoo
oooxooo
ooxoxoo
oxoooxo
xooooox
约定:
2 < m < 35
我们要知道如何循环打印这个X矩阵:
- 判断是否是 i = j 的情况:位置情况是在对角线上,那么这个的判断条件就是
i == j
。
如下: - 或者是另一种情况: 判断是否$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;
}
这是我的第一篇题解,有误还请多多指正