递推递归练习 O

来源:互联网 发布:美食拍照软件 编辑:程序博客网 时间:2024/06/05 18:05

代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int m,n;
    cin>>m;
    while(m--)
   {
        cin>>n;
        int k=0,a[n+1][n+1],i,j;
        for(i=1;i<=n;i++)
        {
            for(j=i;j<=n-i+1;j++)
            {
                k++;
                a[i][j]=k;
            }
            for(int x=i+1;x<=n-i+1;x++)
            {
                k++;
                a[x][n-i+1]=k;
            }
            for(int y=n-i;y>=i;y--)
            {
                k++;
                a[n-i+1][y]=k;
            }
            for(int z=n-i;z>i;z--)
            {
                k++;
                a[z][i]=k;
            }
        }
        for(i=1;i<=n;i++){
            for(j=1;j<n;j++)
                printf("%d\t",a[i][j]);
            printf("%d\n",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}


分析:

n行i从1到n进行循环,从外层逐渐向内找出每行每列含n和i的循环的限制条件即可

注意细节:处理好细节,每一次循环要想清楚,不能着急




0 0