怎么用java数组输出如下数组
12910254381124567122316151413221718192021规律我知道,我就是不知道怎么写算法...
1 2 9 10 25
4 3 8 11 24
5 6 7 12 23
16 15 14 13 22
17 18 19 20 21
规律我知道,我就是不知道怎么写算法 展开
4 3 8 11 24
5 6 7 12 23
16 15 14 13 22
17 18 19 20 21
规律我知道,我就是不知道怎么写算法 展开
6个回答
展开全部
实现距阵的输出需要利用java中的二位数组,举例如下:
public class ArrayTest {
private int[][] array;
public void matrix(int n){//生成距阵
array = new int[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
//求出第一行
if(i==0){
//求出奇数位的值,偶数位的值为左边元素加1
if(j%2==0){
array[i][j]=(j+1)*(j+1);
}else{
array[i][j]=array[i][j-1] + 1;
}
}
//求出第一列
else if(j==0){
if(i%2==1){
array[i][j]=(i+1)*(i+1);
}else{
array[i][j]=array[i-1][j] + 1;
}
}else{
if(i>j){
//寻找规律
//偶数位为为此行第一个元素+j
//奇数位为此行第一个元素-j
if(i%2==0){
array[i][j]=array[i][0] + j;
}else{
array[i][j]=array[i][0] - j;
}
}else{
if(j%2==0){
array[i][j]=array[0][j] - i;
}else{
array[i][j]=array[0][j] + i;
}
}
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
}
输出结果如下:
1 2 9 10 25
4 3 8 11 24
5 6 7 12 23
16 15 14 13 22
17 18 19 20 21
public class ArrayTest {
private int[][] array;
public void matrix(int n){//生成距阵
array = new int[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
//求出第一行
if(i==0){
//求出奇数位的值,偶数位的值为左边元素加1
if(j%2==0){
array[i][j]=(j+1)*(j+1);
}else{
array[i][j]=array[i][j-1] + 1;
}
}
//求出第一列
else if(j==0){
if(i%2==1){
array[i][j]=(i+1)*(i+1);
}else{
array[i][j]=array[i-1][j] + 1;
}
}else{
if(i>j){
//寻找规律
//偶数位为为此行第一个元素+j
//奇数位为此行第一个元素-j
if(i%2==0){
array[i][j]=array[i][0] + j;
}else{
array[i][j]=array[i][0] - j;
}
}else{
if(j%2==0){
array[i][j]=array[0][j] - i;
}else{
array[i][j]=array[0][j] + i;
}
}
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
}
输出结果如下:
1 2 9 10 25
4 3 8 11 24
5 6 7 12 23
16 15 14 13 22
17 18 19 20 21
展开全部
先将这些数放到int[] a的数组中,然后for(int i=0;i<a.length;i++)遍历打印这个数组即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有两个方法 第一建立数组第二 也是我推荐的 你建立Vector容器 往里面add元素 泛型设置成整形就可以了 想add多少add多少这样显示方便很多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以是可以,只是你要确定数字是连贯的,就像你例子上所示的那样。
你用一维数组存储顺序值,比如长度为25
然后转化为二维数组就是5,5对吧
然后观察规律(你知道的),每一个平方数都占据一个矩阵,比如说1~9是一个3*3的矩阵,即3的平方,而3的平方正好等于9,所以可以这样做:
每次迭代,都从一维数组里找出平方数之间的数,比如2的平方和3的平方之间的数是5,6,7,8,9,然后放入到二维数组中相应的位置就可以了。
这里有个规律:就是2的平方和1的平方间的数是2,3,4,它正好从第2列开始放(观察下偶数的平方都是这样),而3的平方是从第三行第一列开始放(奇数的平方都是如此),所以就容易了。
***********************************************************************************
另外如果一维数组的长度不等于一个整数的平方,那二维数组对应位置的值你就初始化为0吧,打印时随你。
你用一维数组存储顺序值,比如长度为25
然后转化为二维数组就是5,5对吧
然后观察规律(你知道的),每一个平方数都占据一个矩阵,比如说1~9是一个3*3的矩阵,即3的平方,而3的平方正好等于9,所以可以这样做:
每次迭代,都从一维数组里找出平方数之间的数,比如2的平方和3的平方之间的数是5,6,7,8,9,然后放入到二维数组中相应的位置就可以了。
这里有个规律:就是2的平方和1的平方间的数是2,3,4,它正好从第2列开始放(观察下偶数的平方都是这样),而3的平方是从第三行第一列开始放(奇数的平方都是如此),所以就容易了。
***********************************************************************************
另外如果一维数组的长度不等于一个整数的平方,那二维数组对应位置的值你就初始化为0吧,打印时随你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询