蛇形填数 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);
    }
}
相关推荐
hmbbcsm3 分钟前
练习python题目小记(六)
开发语言·python
海边夕阳200614 分钟前
主流定时任务框架对比:Spring Task/Quartz/XXL-Job怎么选?
java·后端·spring·xxl-job·定时任务·job
4***V20221 分钟前
Vue3响应式原理详解
开发语言·javascript·ecmascript
q***985223 分钟前
VS Code 中如何运行Java SpringBoot的项目
java·开发语言·spring boot
流水不腐51825 分钟前
若依系统集成kafka
后端
allbs28 分钟前
spring boot项目excel导出功能封装——3.图表导出
spring boot·后端·excel
共享家952735 分钟前
QT-界面优化(中)
开发语言·qt
李日灐42 分钟前
手搓简单 string 库:了解C++ 字符串底层
开发语言·c++
say_fall1 小时前
C语言编程实战:每日一题 - day7
c语言·开发语言
Logan Lie1 小时前
Web服务监听地址的取舍:0.0.0.0 vs 127.0.0.1
运维·后端