java实现如下方阵 1 2 6 7 3 5 8 13 4 9 12 14 10 11 15 16 1 2 5 10 4 3 6 11 9 8 7 12 16 15 14 13

这是两个方阵,4个数一行!每个方阵编一个程序!
采用java编程实现!定义二维数组,使二维数组下标规律变化实现对数组赋值并输出此二维数组!不是简单的直接输出!请高手赐教!谢谢!

1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16

1 2 5 10
4 3 6 11
9 8 7 12
16 15 14 13

您这问题没法会打 最简单就是 四个数一换行 \n 打印就行了 不会想要这样吧
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-11-28
class ASD
{
public static void main(String[]args)
{
int[]a={1,2,6,7,3,5,8,13,4,9,12,14,10,11,15,16,1,2,5,10,4,3,6,11,9,8,7,12,16,15,14,13};
int n=0;
for(int i=0;i<=a.length-1;i++)
{
System.out.print(a[i]+" ");
n++;
if(n%4==0)
{
System.out.println();
}
}
}
}
第2个回答  2012-09-29
public static void run(int n){
int arr[][]=new int[n][n];
int args[][]=new int[(n<<1)-1][];
int count=1;
for(int i=0;i<(n<<1)-1;i++){
args[i]=new int[i>=n?(n<<1)-i-1:i+1];
int j=0;
if((i&1)==0){
while(j<args[i].length){
args[i][j++]=count++;
}
}else{
while(j++<args[i].length){
args[i][args[i].length-j]=count++;
}
}
}
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
arr[i][j]=args[i+j][i+j>=n?n-1-i:j];
}
}
for(int[] a:arr){
System.out.println(Arrays.toString(a));
}
}

参数为8的结果:
[1, 2, 6, 7, 15, 16, 28, 29]
[3, 5, 8, 14, 17, 27, 30, 43]
[4, 9, 13, 18, 26, 31, 42, 44]
[10, 12, 19, 25, 32, 41, 45, 54]
[11, 20, 24, 33, 40, 46, 53, 55]
[21, 23, 34, 39, 47, 52, 56, 61]
[22, 35, 38, 48, 51, 57, 60, 62]
[36, 37, 49, 50, 58, 59, 63, 64]
第3个回答  2010-11-29
想了半天 还是没思路 算了
第4个回答  2010-11-28
麻烦把方阵打出来

...的方阵: 1 2 6 7 3 5 8 13 4 9 12 14 10 11 15 16
include<stdio.h> define N 4 void main(){ int a[N][N]={ {1,2,6,7}, {3,5,8,13},{4,9,12,14},{10,11,15,16}};int i,j;for(i=0;i<N;i++){ for(j=0;j<N;j++)printf("%4d",a[i][j]);printf("\\n");} printf("\\n");} 已运行通过 ...

...1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 左对齐!最好用...
public static void main(String[] args){ int Co=30; \/\/排序到多少位?int[][] Arr=new int[5][]; \/\/定义不规则数组 int integer=0;\/\/用来计数的 for (int i = 0; i < 5; i++) { Arr[i] =new int[Co\/5];for (int j = 0; j < Co\/5; j++) { Arr[i][j]=...

编写程序,使用循环结构,输出: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
int main(void){ int i = 0;while (1){ printf("%d ", ++i);if (i == 15)break;} return 0;}

数列:1 2 6 7 15 16… 3 5 8 14… 4 9 13… 10 12… 11… …… 在这样...
62*63\/2=1953 因此1993是在旋转后的数列中的第63行的第1993-1953+1=40个位置 还原数列,因为40前面有39个数,也就是相当有39列,因此还原后是第=63-39=24列,而40后面有63-40=23个数,还原后就相当前面有23行,所以它是第24行 因此1993在第24行第40列 ...

编程输出下列矩阵: 13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4_百度...
include<stdio.h> include<stdlib.h> int main(){int i,j,r=1,a[4][4];for(i=0;i<4;i++)for(j=0;j<4;j++)a[i][j]=r++;for(i=3;i>=0;i--){for(j=0;j<4;j++)printf("%3d",a[i][j]);printf("\\n");} system("pause");return 0;} 看看行不行,%&**& ...

...6 7 15 16…… 3 5 8 14 17…… 4 9 13…… 10 12…… 11……_百度...
前62个斜排一共有62*63\/2=1953个数 所以1993在第63斜排,因为奇数斜排是从左下朝右上排,偶数斜排是从右下朝左上排 所以63斜排是从左下朝右上排,且第一个数是1954,那么1993在第63斜排的第1993-1954+1=40个 所以其横坐标是40,纵坐标是60-40+1=21,即第21行第40列 ...

...1 2 6 7 15 16 … 3 5 8 14 17 … 4 9 13 18 … 10 12 … 11...
本题排列规律为自然数列从小到大按对角线斜排(左下到右上,或右上到左下)。1+2+3+...+62=1953。1953是第62行第1个数,1954是第63行第1个数。其后的数行数逐个减一,列数逐个加一。1993-1954=39,63-39=24,1+39=40 所以100在第24行第40列。

如图1 2 3 4 5 6 7 8 9 10 11 12 13 1415 16 ①第N行第一个是?②第N...
所以每行的和就是[(n-1)²+1+n²]×(2n-i)÷2 对该式进行化简:=(n²-2n+1+1+n²)(2n-1)÷2 =(2n²-2n+2)(2n-1)÷2 前面一个式子提取2:=2(n²-n+1)(2n-1)÷2=(n²-n+1)(2n-1)所以,最后的答案就是(n²-n+1)(2n...

...2,3,4},{5,6,7,8},{9,10,11,12}{13,14,15,16}},输出每行的平均值...
int main(void){ int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};int i, j;int sum;for (i = 0; i < 4; i++){ sum = 0;for (j = 0; j < 4; j++){ sum += a[i][j];} printf("第%d行平均值: %f\\n", i+1, sum \/ 4.0);...

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 问:以此类推,,第1010行的第8个...
第一行是8,第二行是8+15=23,第三行是8+15+15=8+15*2=38,以此类推,,第1010行的第8个数字是8+15*(1010-1)=15143 根据在一楼回答的追问:第一行第一个数字是1 第二行第一个数字是1+3=4 第三行第一个数字是1+3+4=8 第四行第一个数字是1+3+4+5=13 。。。第十行第一...

相似回答