螺旋矩阵

递归

#include <stdio.h>
#include <stdlib.h>
int N = 4;
int Helix( int x, int y )
{
    if ( (x == 1) && (y == 1) )
        return(1);
    if ( (x - y >= 1) && (x + y <= N) )
        return(1 + Helix( x + 1, y ) );
    if ( (x - y >= 1) && (x + y > N) )
        return(1 + Helix( x, y + 1 ) );
    if ( (x - y < 1) && (x + y <= N + 1) )
        return(1 + Helix( x, y - 1 ) );
    if ( (x - y < 1) && (x + y) > N + 1 )
        return(1 + Helix( x - 1, y ) );
    else return(0);
}

int main()
{
    for ( int i = 1; i <= N; i++ )
    {
        for ( int j = 1; j <= N; j++ )
            printf("%3d",Helix( i, j ));
        printf("\n");
    }
    return 0;
}

非递归

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容