public class Demo {
public int count = 0;
public int total = 0;
public int num = 0;
public int [][] args;
/**
* 1 2 3 4
* 12 13 14 5
* 11 16 15 6
* 10 9 8 7
*
*/
public Demo(int num){
args = new int [num][num];
total = num*num;
process(0, 0, num, 0);
}
private void process(int x, int y, int next, int times) {
// x+
for (int i = next; i > 0; i--) {
if(count !=0 && total == count ){
return;
}
args[x][y] = ++count;
if((x-times) < (next -1)){
x++;
}
}
// y+
for (int i = next -1; i > 0; i--) {
if(count !=0 && total == count ){
return;
}
if((y -times) < (next -1)){
y++;
}
args[x][y] = ++count;
}
// x-
for (int i = next -1; i > 0; i--) {
if(count !=0 && total == count ){
return;
}
x --;
args[x][y] = ++count;
}
// y-
for (int i = next -2; i > 0; i--) {
if(count !=0 && total == count ){
return;
}
y --;
args[x][y] = ++count;
}
if(count !=0 && total == count ){
return;
}else{
process(x+1,y,next-2, times+1);
}
}
public static void main(String[] args) {
new Demo(2);
}
}
分享到:
相关推荐
"Matlab 数组赋值的多种方法" Matlab 作为一款功能强大的科学计算软件,对数组的操作是其核心功能之一。数组赋值是 Matlab 中最基本的操作之一,对于数组的赋值有多种方法,本文将详细介绍 Matlab 数组赋值的多种...
下面是一个简单的易语言二维数组赋值源码示例,它创建一个二维数组并填充1到9的数字: ```易语言 .整数型 数组名[3, 3] .循环(3) .循环(3) 数组名[循环索引1, 循环索引2] = 循环索引1 * 3 + 循环索引2 + 1 ...
本篇文章将深入探讨易语言中的二维数组赋值以及相关源码解析。 首先,了解易语言的基本语法对于学习二维数组至关重要。易语言采用中文作为编程语言,降低了编程的入门难度,其语法简洁明了。二维数组在易语言中定义...
java代码-使用java增强for循环 string数组赋值的源代码 ——学习参考资料:仅用于个人学习使用!
从这里学习到一个数组的赋值的方法,即实际赋值可以按不同的顺序(只要是合法的下标),而不是仅限于从0~N这样的顺序去赋值。
matlab数组赋值的示例,一眼看懂
给链表数组赋值涉及到链表的创建、插入、遍历以及数组的初始化等操作。 1. **链表创建**: 在C++中,链表通常通过结构体或类来实现,包含一个数据成员(存储元素)和一个指向下一个节点的指针。首先,我们需要定义...
本压缩包文件"易语言学习进阶二维数组赋值源码.rar"提供了相关的源代码示例,帮助学习者深入理解二维数组的赋值操作。 二维数组可以看作是一组一维数组的集合,它在内存中以表格的形式存储数据,每个元素都有两个...
该程序是我写的博客“一起talk C栗子吧(第五回:C语言实例--数组巧妙赋值)”的配套程序,共享给大家使用。
matlab数组赋值 内容概要 本文介绍了在MATLAB中进行数组赋值的方法,并提供了相应的示例代码和详细说明。通过学习本文,您将掌握以下知识和技能: 理解数组赋值的概念; 掌握创建和初始化空数组的方法; 了解使用...
3. **数组赋值函数**:易语言提供了一些内置函数,如“数组赋值”和“数组拷贝”,可以方便地将一个数组的值整体复制给另一个数组。这在处理数组数据的复制和交换时非常实用。 4. **数组初始化**:在声明数组的同时...
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于...
然而,在处理二维数组赋值时,可能会遇到一些陷阱,特别是在初始化数组时。本篇文章将深入探讨如何正确地解决Python二维数组赋值的问题。 首先,让我们看看导致问题的初始化方法: ```python s = [[0]*3]*2 ``` 在...
然后,我们演示了四种不同的数组赋值方式: 直接赋值:使用A(1, 1)的形式将第一行第一列的元素替换为新值10。 使用逗号运算符赋值:使用A(2, :) = [10, 20, 30]的形式将第二行的元素依次替换为10、20和30。 使用...
本文将详细介绍 Java 中数组赋值的几种方法,并提供相应的示例。 首先,我们来看**逐个赋值**。这种方法适用于数组元素需要独立设置的情况。例如,创建一个整型数组 `int[] arr`,我们可以直接通过索引来给每个元素...
在JavaScript中,对象和数组的赋值操作与基本数据类型如字符串、整数或布尔值的赋值有所不同。这是因为在JavaScript中,对象和数组是引用类型,它们在内存中分配的位置是固定的,赋值实际上是复制了对这个内存位置的...
在MATLAB中,数组赋值是一项基础且重要的操作,它涉及到数据处理、矩阵运算和算法实现等多方面。本教程将深入探讨如何在MATLAB环境中有效地对数组进行赋值,尤其是通过循环结构来实现。 首先,MATLAB中的数组赋值...
然而,当涉及到数组时,Vue并不能自动检测到某些直接修改数组的操作,比如`数组赋值`。这导致了一个常见的问题:当你尝试通过赋值方式更新数组,虽然实际数组确实被修改了,但Vue的视图不会随之更新,从而引发“数组...
matlab数组赋值