易语言采用循环算法求n阶螺旋矩阵问题

求n阶螺旋矩阵源码

窗口放置一个范围编辑框,一个显示编辑框。

.版本 2
 
.子程序 _计算图形按钮_被单击
 
结果字符串 = “”
结果编辑框.内容 = “”
轮换阶数 = 到数值 (范围数编辑框.内容)
.如果 (轮换阶数 ≥ 100 或 轮换阶数 ≤ 0)
    信息框 (“阶数超出范围!”, 0, )
.否则
    重定义数组 (结果组数,, 轮换阶数 + 1, 轮换阶数 + 1)
    .变量循环首 (1, 轮换阶数 + 1, 1, 一级标甲)
        .变量循环首 (1, 轮换阶数 + 1, 1, 一级标乙)
            结果组数 [一级标甲] [一级标乙]0
        .变量循环尾 ()
    .变量循环尾 ()
    ' 临时数初始值为1
    临时数 = 1
    ' 各个级标初始值为零
    连续赋值 (0, 一级标甲, 一级标乙, 二级标甲, 二级标乙, 三级标甲, 三级标乙)
    ' 如果临时值小于轮换阶数平方
    .判断循环首 (临时数 ≤ 轮换阶数 × 轮换阶数)
        一级标乙 = 二级标乙
        .判断循环首 (一级标乙 < 轮换阶数 - 二级标乙 且 临时数 ≤ 轮换阶数 × 轮换阶数)
            结果组数 [一级标甲 + 1] [一级标乙 + 1] = 临时数
            ' 临时数自增
            临时数 = 临时数 + 1
            ' 一级标乙自增
            一级标乙 = 一级标乙 + 1
        .判断循环尾 ()
        二级标乙 = 二级标乙 + 1
        一级标乙 = 一级标乙 - 1
        .变量循环首 (二级标甲 + 1, 轮换阶数 - 二级标甲 - 1, 1, 一级标甲)
            结果组数 [一级标甲 + 1] [一级标乙 + 1] = 临时数
            ' 临时数自增
            临时数 = 临时数 + 1
        .变量循环尾 ()
        二级标甲 = 二级标甲 + 1
        一级标甲 = 一级标甲 - 1
 
        一级标乙 = 一级标乙 - 1
        .判断循环首 (一级标乙 ≥ 三级标乙 且 临时数 ≤ 轮换阶数 × 轮换阶数)
            结果组数 [一级标甲 + 1] [一级标乙 + 1] = 临时数
            ' 临时数自增
            临时数 = 临时数 + 1
            一级标乙 = 一级标乙 - 1
        .判断循环尾 ()
        ' 三级标乙 自增
        三级标乙 = 三级标乙 + 1
        ' 一级标乙 自增
        一级标乙 = 一级标乙 + 1
        .变量循环首 (一级标甲 - 1, 三级标甲 + 1, -1, 一级标甲)
            结果组数 [一级标甲 + 1] [一级标乙 + 1] = 临时数
            ' 临时数自增
            临时数 = 临时数 + 1
        .变量循环尾 ()
        ' 三级标甲 自增
        三级标甲 = 三级标甲 + 1
        ' 一级标甲 自增
        一级标甲 = 一级标甲 + 1
    .判断循环尾 ()
    .变量循环首 (0, 轮换阶数 - 1, 1, 一级标甲)
        .变量循环首 (0, 轮换阶数 - 1, 1, 一级标乙)
            ' 循环求解果
            结果字符串 = 结果字符串 + 选择 (结果组数 [一级标甲 + 1] [一级标乙 + 1] < 10, “0” + 到文本 (结果组数 [一级标甲 + 1] [一级标乙 + 1]), 到文本 (结果组数 [一级标甲 + 1] [一级标乙 + 1])) + “,”
        .变量循环尾 ()
        结果字符串 = 结果字符串 + #换行符
    .变量循环尾 ()
    结果编辑框.内容 = 结果字符串
.如果结束

发布日期:

所属分类: 易语言 标签: