蛇形填数 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);
    }
}
相关推荐
BD_Marathon1 分钟前
SpringBoot——配置文件格式
java·spring boot·后端
mjhcsp2 分钟前
C++ 有限状态自动机(FSM):原理、实现与应用全解析
开发语言·c++·有限状态自动机
2301_797312266 分钟前
学习java37天
开发语言·python
幽络源小助理8 分钟前
SpringBoot+小程序高校素拓分管理系统源码 – 幽络源免费分享
spring boot·后端·小程序
xifangge20258 分钟前
PHP 接口跨域调试完整解决方案附源码(从 0 到定位问题)
开发语言·php
程序员爱钓鱼8 分钟前
Node.js 编程实战:测试与调试 —— 日志与监控方案
前端·后端·node.js
go_bai9 分钟前
Linux-网络基础
linux·开发语言·网络·笔记·学习方法·笔记总结
雄大12 分钟前
使用 QWebChannel 实现 JS 与 C++ 双向通信(超详细 + 踩坑总结 + Demo)
后端
计算机学姐14 分钟前
基于SpringBoot的汉服租赁系统【颜色尺码套装+个性化推荐算法+数据可视化统计】
java·vue.js·spring boot·后端·mysql·信息可视化·推荐算法
回家路上绕了弯15 分钟前
定期归档历史数据实战指南:从方案设计到落地优化
分布式·后端