You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在行列数相同的二维数组中动态生成数字螺旋矩阵

如何在行列数相同的二维数组中动态生成数字螺旋矩阵?

我这里有一个基于@TheGeneral的C#代码改写的C++实现方案,核心思路是通过分层判断当前元素所在的行和列位置,计算出对应的基准值,进而推导螺旋矩阵中每个位置的数字:

#include <iostream>
using namespace std;
int main(){
    int size = 10;
    int half = size/2;
    int matrix[size][size];
    int number1 = 0;
    int number2 = 0;
    for(int i = 1; i<=size; i++){
        for(int j = 1; j<= size; j++){
            if(i > half){
                number1 = size + 1 - i;
            }else{
                number1 = i;
            }
            if(j > half){
                number2 = size + 1 - j;
            }
            // 这里可以继续补全根据number1和number2计算当前矩阵元素值的逻辑
        }
    }
}

简单说下这个思路的核心:我们把方阵按层划分,half是矩阵的中间层分界。对于每一行i和每一列j,先判断它们处于上半部分还是下半部分(行)、左半部分还是右半部分(列),得到number1和number2这两个基准值,后续就可以基于这两个值计算出当前位置在螺旋中的对应数字。

内容的提问来源于stack exchange,提问作者joepa37

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:13:59