蛇形填数 rust解法

蛇形填数。

在n×n方阵里填入1,2,...,n×n,要求填成蛇形。例如,n=4时方阵为:

10 11 12 1

9 16 13 2

8 15 14 3

7 6 5 4

解法如下:

rust 复制代码
use std::io;

fn main() {
    let mut buf = String::new();
    io::stdin().read_line(&mut buf).unwrap();
    let n: usize = buf.trim().parse().unwrap();
    let mut arr = vec![vec![0; n]; n];

    let mut i = 1;
    let mut x = 0;
    let mut y = n - 1;
    arr[x][y] = 1;
    while i < n * n {
        while x + 1 < n && arr[x + 1][y] == 0 {
            i += 1;
            x += 1;
            arr[x][y] = i;
        }
        while y > 0 && arr[x][y - 1] == 0 {
            i += 1;
            y -= 1;
            arr[x][y] = i;
        }
        while x > 0 && arr[x - 1][y] == 0 {
            i += 1;
            x -= 1;
            arr[x][y] = i;
        }
        while y + 1 < n && arr[x][y + 1] == 0 {
            i += 1;
            y += 1;
            arr[x][y] = i;
        }
    }
    for row in &arr {
        println!("{:?}", row);
    }
}
相关推荐
小陈工5 分钟前
2026年3月24日技术资讯洞察:边缘AI商业化,Java26正式发布与开源大模型成本革命
java·运维·开发语言·人工智能·python·容器·开源
苍何19 分钟前
你的Agent🦞也能做电影了!
后端
方安乐22 分钟前
Javascript工具库:classnames
开发语言·javascript·ecmascript
xushichao198925 分钟前
C++中的中介者模式
开发语言·c++·算法
Soofjan25 分钟前
GMP 源码(下):调度循环、抢占与 syscall
后端
Hello.Reader27 分钟前
从零开始安装 Qt完整新手教程(1)
开发语言·qt
苍何27 分钟前
一人公司,我雇了 6 个 AI 龙虾总监
后端
娇娇yyyyyy28 分钟前
QT编程(19) : Qt 实现自定义delegate
开发语言·数据库·qt
AI科技星30 分钟前
基于wr/c + h/c = 1的螺旋线矢量特性及应用分析
c语言·开发语言·人工智能·opencv·算法·计算机视觉·r语言
颜酱33 分钟前
回溯算法专项突破练习(1)
javascript·后端·算法