蛇形填数 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);
    }
}
相关推荐
程序员鱼皮8 分钟前
Claude Opus 5 全新发布,7 大项目实测,夯还是拉?半价吊打 Fable 5?
前端·后端·ai编程
Nebula_g21 分钟前
Java实现本地Socket通信(三)
java·开发语言·学习·socket·可视化
一水25 分钟前
java运行排错,新码旧jar
java·开发语言·jar
Conan在掘金31 分钟前
ArkTS 进阶之道(11):build() 重渲边界——状态变为啥只刷依赖组件
后端
xiaobaoyu1 小时前
mac+idea快捷键
后端
站大爷IP1 小时前
异常捕获别乱写!一个裸的 except: 让我调试了通宵,这3种写法差距太大了
后端
Python+991 小时前
Java 编程语言入门指南
java·开发语言
Wang's Blog1 小时前
Go-Zero项目开发40: 基于Jaeger的分布式链路跟踪实战
开发语言·分布式·golang
TDengine (老段)1 小时前
TDengine Go 与 Rust 连接器 — 高性能异步访问
大数据·数据库·物联网·golang·rust·时序数据库·tdengine
用户4279254051711 小时前
weibo-cli 实战:用命令行搭建微博自动化运营 Pipeline
后端