#include<stdio.h> const int N=8; int mat[N][N]; void print(int n){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++)printf("%4d",mat[i][j]); printf("\n"); } } void solve(int n){ if(n==1){mat[0][0]=1; return;} solve(n/2); int m=n/2; for(int i=0;i<m;i++) for(int j=0;j<m;j++){ mat[i+m][j]=mat[i][j]+m; mat[i][j+m]=mat[i+m][j]; mat[i+m][j+m]=mat[i][j]; } } int main(){ solve(N); print(N); return 0; }