c++月饼盒是边长为n厘米的正方形,月饼盒中有一个长为a厘米、宽为b厘米的磨砂纸。现将月饼盒视作一个n∗n的矩阵,磨砂纸覆盖部分的元素为0,没有盖住的元素为1。 现根据输入的n、a、b,判断磨砂纸盖住的区域是否恰好在整个矩阵的正中间。如果恰好在矩阵的正中间则输出整个矩阵,否则输出 − 1
时间: 2024-03-24 20:41:43 浏览: 180
下面是使用C++语言的代码实现,和之前的代码类似,只是加入了头文件和命名空间。
```cpp
#include <iostream>
using namespace std;
int main() {
int n, a, b;
cin >> n >> a >> b;
// 判断磨砂纸盖住的区域是否在整个矩阵的正中间
int x = n/2 - a/2;
int y = n/2 - b/2;
if (x * b != y * a) {
cout << "-1" << endl;
} else {
// 构造矩阵
int matrix[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = 1;
}
}
for (int i = x; i < x+a; i++) {
for (int j = y; j < y+b; j++) {
matrix[i][j] = 0;
}
}
// 输出矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << matrix[i][j];
}
cout << endl;
}
}
return 0;
}
```
输入样例:
```
5 2 2
```
输出样例:
```
11111
11111
11011
11111
11111
```
阅读全文