蛇形填数
来源:互联网 发布:苹果ios7是什么软件 编辑:程序博客网 时间:2024/05/16 11:18
问题:
在n*n方阵里填入1,2,....,n*n,要求填成蛇形。例如,n=4时方阵为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
分析:
从1开始填写,设“笔”的坐标为(x,y),则一开始x=0,y=n-1。
“笔”的移动轨迹是:下......,左.......,上.......,右.....。
如此循环........
import java.util.Scanner;public class Main { private static Scanner sc; public static void main(String[] args) { sc = new Scanner(System.in); int n = sc.nextInt(); int x = 0; int y = n - 1; int count = 1; int[][] a = new int[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { a[i][j] = 0; } } a[0][n - 1] = 1; while (count < n * n) { while (x + 1 < n && a[x + 1][y] == 0) { a[++x][y] = ++count; } while (y - 1 >= 0 && a[x][y - 1] == 0) { a[x][--y] = ++count; } while (x - 1 >= 0 && a[x - 1][y] == 0) { a[--x][y] = ++count; } while (y + 1 < n && a[x][y + 1] == 0) { a[x][++y] = ++count; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { System.out.printf("%5d", a[i][j]); } System.out.println(); } }}
1 0
- 蛇形填数
- 算法:蛇形填数
- 蛇形填数
- 蛇形填数
- 蛇形填数
- 蛇形填数问题
- 蛇形填数
- C++蛇形填数
- 蛇形填数
- 蛇形填 数
- 蛇形填数
- NYOJ - 蛇形填数
- 蛇形填数
- 各种蛇形填数
- 蛇形填数
- 蛇形填数
- ACM-蛇形填数
- 蛇形填数
- 硅谷杰出工程师的五个能力
- node.js 创建子进程 II
- RMAN实战
- Codeforces 635D Factory Repairs (树状数组)
- Activity和Service之间只相差了一个Window
- 蛇形填数
- SpringMVC异常统一处理
- Android清理内存
- 平行四边形数
- hdoj2050代码及详解
- xampp 设置虚拟主机
- shell自动监控重启Tomcat脚本
- springcloud(第四篇)springcloud hystrix
- 块设备驱动程序(Linux设备驱动程序)