#include <bits/stdc++.h> using namespace std; int a[1030][1030]; void sm (int x,int y,int n) { if(n==0) a[x][y]==1; else { sm(x+(1<<n-1),y,n-1); sm(y+(1<<n-1),x,n-1); sm(x+(1<<n-1),y+(1<<n-1),n-1); } } int main() { int n; scanf("%d",&n); sm(0,0,n); for(int i=0;i<1<<n;i++) { for(int j=0;j<1<<n;j++) printf("%d ",a[i][j]); cout<<endl; } return 0; }有什么问题
时间: 2024-01-25 12:04:44 浏览: 35
这段代码存在问题:
1. 在 `sm` 函数中,应该使用赋值运算符 `=` 而不是比较运算符 `==`,因为这里是将 `1` 赋值给 `a[x][y]`。
2. 在 `sm` 函数中,第一次递归调用应该是 `sm(x + (1 << (n-1)), y, n-1)`,而不是 `sm(x + (1 << n-1), y, n-1)`,因为 `1 << (n-1)` 表示将 1 左移 n-1 位,而不是将 n-1 左移一位。
3. 在 `sm` 函数中,第二次递归调用应该是 `sm(x, y + (1 << (n-1)), n-1)`,而不是 `sm(y + (1 << n-1), x, n-1)`,因为这里是将 y 坐标加上 $2^{n-1}$。
4. 在 `sm` 函数中,第三次递归调用应该是 `sm(x + (1 << (n-1)), y + (1 << (n-1)), n-1)`,因为这里是将 x 和 y 坐标都加上 $2^{n-1}$。
5. 在 `sm` 函数中,当递归到 n=0 时,应该将 `a[x][y]` 赋值为 1,而不是使用比较运算符判断是否为 1。
6. 在输出结果时,应该使用 `%d` 格式化输出,而不是 `%c`。
7. 变量 `a` 的大小应该为 `int a[1<<n][1<<n]`,而不是 `int a[1030][1030]`,因为 `n` 的最大值为 10,因此 `1<<n` 的最大值为 1024。
修改后的代码如下:
```c++
#include <bits/stdc++.h>
using namespace std;
int a[1<<10][1<<10];
void sm(int x, int y, int n) {
if (n == 0) {
a[x][y] = 1;
} else {
sm(x + (1 << (n-1)), y, n-1);
sm(x, y + (1 << (n-1)), n-1);
sm(x + (1 << (n-1)), y + (1 << (n-1)), n-1);
}
}
int main() {
int n;
scanf("%d", &n);
sm(0, 0, n);
for (int i = 0; i < (1 << n); i++) {
for (int j = 0; j < (1 << n); j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
```
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![h](https://img-home.csdnimg.cn/images/20210720083646.png)
![h](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)