程序放大代码

#include<stdio.h>
#include<math.h>
#include<string.h>
char a[30][30];
char v[3005][3005];
int n;
void dfs(int k,int x,int y)
{
    int tmp,i,j,tot,l;
    if(k==1)
    {
        for(i=x;i<x+n;i++)
            for(j=y;j<y+n;j++)
                v[i][j]=a[i-x][j-y];
        return;
    }
    tot=1;l=1;
    for(i=1;i<k-1;i++)
        l*=n;
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
        if(a[i][j]!=' ')
            dfs(k-1,x+l*n*i,y+l*n*j);
}
int main()
{
    int l,i,j,k;
    while(scanf("%d",&n),n)
    {
        getchar();
        for(i=0;i<n;i++)
            gets(a[i]);
        memset(v,' ',sizeof(v));
        scanf("%d",&k);
        l=1;

        for(i=1;i<=k;i++)
            l*=n;
          dfs(k,0,0);

        for(i=0;i<l;i++)
        {
            v[i][l]='\0';
            puts(v[i]);
        }
    }
    return 0;
}
posted on 2013-03-21 13:09  小牧童的天空  阅读(271)  评论(0编辑  收藏  举报