递归经典算法之多转向旋转方阵

本文介绍了如何使用递归方法将前n^2个正整数填入n*n的方阵中,并详细阐述了四种转向的填充思路,配合具体代码实现,解析了这一经典的算法问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.将前n^2个正整数填入n*n的方阵中,分为四个转向:

1>从方阵的左上角开始,由外层至中心按照顺时针的方式螺旋排列而成的数字方阵,称为n阶顺转向内方阵
2>从方阵的左上角开始,由外层至中心按照逆时针的方式螺旋排列而成的数字方阵,称为n阶逆转向内方阵
3>从方阵的中心开始,由中心至外层按照顺时针的方式螺旋排列而成的数字方阵,称为n阶顺转向外方阵
4>从方阵的中心开始,由中心至外层按照逆时针的方式螺旋排列而成的数字方阵,称为n阶逆转向外方阵

2.思路:

先画出来4*4方阵的四个转向方阵,查找规律,可以看出,四个方阵的值是有规律的,能求出其中一个,就能根据这个来求出其他三个方阵对应的位置的值,这里求n阶顺转向内方阵

1.假设a[h][v]表示第h行第v列的值,n阶顺转向内方阵是一圈一圈的组成,可以从外想内一圈一圈的求解所有位置的值
    1>一圈的上行从左到右依次递增,行号h不变,列号自增1,
    2>一圈的右列从上到下依次递增,行号h自增1,列号不变,
    3>一圈的下行从右到左依次递增,行号不变,列号自减1,
    4>一圈的左列从下到上依次递增,行号h自减1,列号不变

2.从外向内,最外圈是n*n阶,往里的每一圈的阶都自减2

3.顺转向外方阵的值: n*n - a[v][h] + 1
  逆转
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值