C语言递归标记矩阵状态
查看原帖
C语言递归标记矩阵状态
1066244
qidai628楼主2024/4/24 23:45
#include <stdio.h>
#include <string.h>
#include <math.h>

char M[1024][1024];

void mark(int x, int y, int n)
{
    int i,j;
    if (n>1) {
        for (i=x;i<x+n/2;i++)
            for (j=y;j<y+n/2;j++)
                M[i][j]=0;
        mark(x,y+n/2,n/2);
        mark(x+n/2,y,n/2);
        mark(x+n/2,y+n/2,n/2);   
    }
}

int main()
{
    int n,m,i,j;
    scanf("%d",&n);
    memset(M, 1, sizeof(M));
    m=pow(2,n);
    mark(0,0,m);
    for (i=0;i<m;i++) {
        for (j=0;j<m;j++)
            printf("%d ",M[i][j]);
        if (i<m-1)
            printf("\n");
    }
    return 0;
}
2024/4/24 23:45
加载中...