蛇形填数 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);
    }
}
相关推荐
回家路上绕了弯几秒前
分布式系统重试策略详解:可靠性与资源消耗的平衡艺术
分布式·后端
王中阳Go几秒前
别再卷 Python 了!Go + 字节 Eino 框架,才是后端人转 AI 的降维打击(附源码)
后端·面试·go
superman超哥5 分钟前
Rust 表达式与语句的区别:函数式思维与控制流设计
开发语言·后端·rust·rust表达式·rust语句·函数式思维·控制流设计
fliter6 分钟前
常见的链上攻击向量
后端
趁月色小酌***9 分钟前
JAVA 知识点总结5
java·开发语言·python
caesar_lion13 分钟前
C++ 多线程陷阱:分离线程(detached thread)访问已析构对象的致命隐患
后端
Macbethad13 分钟前
SpringMVC RESTful API开发技术报告
java·spring boot·后端
05大叔13 分钟前
SpringMVCDay01
java·开发语言
代码游侠16 分钟前
复习——网络测试工具
linux·开发语言·网络·笔记·学习·测试工具
青梅主码16 分钟前
OpenAI最新发布年度重磅报告《2025年企业人工智能状况报告》:ChatGPT企业版消息量同比增长约8倍
后端