蛇形填数 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);
    }
}
相关推荐
gCode Teacher 格码致知几秒前
Python教学:十六进制编码的显示方法-由Deepseek产生
开发语言·python·算法
并不喜欢吃鱼几秒前
从零开始 C++------ 十四【C++ 数据结构】unordered_map/unordered_set 全解析:从使用到底层模拟实现
开发语言·数据结构·c++
曾几何时`2 分钟前
Go(一)Gin框架 和 GORM机制
开发语言·golang·gin
biter down8 分钟前
3.Python 接口自动化之 Pytest 测试框架
开发语言·python
IT_陈寒14 分钟前
Vue的动态组件坑了我整整一天!
前端·人工智能·后端
鬼拉怪拉14 分钟前
【无标题】
开发语言
Cobyte17 分钟前
AI 的个人便签纸:Claude Code 的 TodoWrite 模式
前端·后端·aigc
hai31524754319 分钟前
FiveOS V3.0 交付(微服务器操作系统版 · 物理合规修正
linux·人工智能·spring boot·后端·神经网络·机器学习
Kapaseker20 分钟前
Rust 是如何干掉空指针的
rust·kotlin
硅农深芯24 分钟前
芯片设计后端工作流程详解
后端·芯片设计