大佬求助啊啊,我自己试了好几组数据都没有问题但是0AC(哭了)
查看原帖
大佬求助啊啊,我自己试了好几组数据都没有问题但是0AC(哭了)
447562
像素旋转楼主2021/1/6 09:05
#include<stdlib.h>
#include<math.h>
void map(int);
int pardon(int, int*);
int a[1024][1024] = { 0 };
int main(void)
{
    int n, i, j, m;
    int* q = NULL;
    scanf("%d", &n);
    map(n);
    ////////
    q = a[0];
    pardon(n, q);
    m = pow(2, n);
    for (i = 0; i < m; i++) {
        for (j = 0; j < m; j++)
            printf("%d", a[i][j]);
        printf("\n");
    }
    getchar();
    getchar();
    return 0;
}
void map(int n)
{
    int m, i, j;
    m = pow(2, n);
    for (i = 0; i < m; i++)
        for (j = 0; j < m; j++)
            a[i][j] = 1;
}
int  pardon(int n, int* q)
{
    int* i = NULL, j, m = pow(2, n -1);
    int* p[4] = { NULL,NULL,NULL,NULL };
    //定每一个矩阵的位置
    p[0] = q, p[1] = q + m /*+ 1*//*同行第二个单元*/, p[2] = q + 1024 * (m /*+ 1*/)/*同列的第二个单元*/, p[3] = q + 1024 * (m /*+ 1*/) + m /*+ 1*/;
    if (n == 1)
    {
        *q = 0;
        return 0;
    }
    else
    {
        /*code*/
        for (i = q; i < q + m; i++)///
            for (j = 0; j < m; j++)
                *(i + 1024 * j) = 0;
       // pardon(n - 1,p[0]);
        pardon(n - 1, p[1]);
        pardon(n - 1, p[2]);
        pardon(n - 1, p[3]);
        return 0;
    }
}
2021/1/6 09:05
加载中...