展开全部
先分析规律,从第二行开始,每行4个,逆序顺序交替e68a843231313335323631343130323136353331333365653761,末尾空一首位空一交替。
然后用for循环不断的书写这个数列,然后在数列中找到需要找的数字的位置,即这个数字所在索引。
下面为实现代码:package baidu;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class MathList {
//数列的尽头
private static int max;
//要找到的数字
private static int bingo;
//最后一行的数字个数
private static int sizeoflastrow;
//行数
private static int rows;
//每行的排序方式,0为顺序,1为逆序
private static int order;
//排序后的数列
private static List> numbers = new ArrayList>();
public static void main(String[] args) {
System.out.println("请输入最大数");
Scanner scan = new Scanner(System.in);
max = scan.nextInt();
System.out.println("请输入要找到的数字");
bingo = scan.nextInt();
scan.close();
//计算最后一行数字的个数及行数
if (max<=5) {
sizeoflastrow = max%5;
rows = 1;
} else if (max>5){
sizeoflastrow = (max-5)%4;
if (sizeoflastrow==0) {
rows = ((max-5)-(max-5)%4)/4+1;
} else {
rows = ((max-5)-(max-5)%4)/4+2;
}
}
System.out.println("行数为"+rows+"行");
System.out.println("最后一行数字的个数为"+sizeoflastrow+"个");
//为每行插入数据
for (int i = 0; i
//计算此行是顺序还是逆序
order = i%2;
List listi = new ArrayList();
//如果此行为第一行
if (i==0) {
for (int j = 0; j
listi.add(new Integer(j+1).toString());
}
while (listi.size()<5) {
listi.add("");
}
//如果此行为最后一行
} else if (i!=0 && i==rows-1){
//如果此行是顺序
if (order == 0) {
//先插入一个空位
listi.add("");
//按顺序插入数字
for (int j = 0; j
listi.add(new Integer(5+(i-1)*4+j+1).toString());
}
//末尾补足空位
for (int j = 0; j
listi.add("");
}
//如果此行是逆序
} else if (order == 1){
//先按逆序插入数字
for (int j = 0; j
listi.add(new Integer(5+(i-1)*4+(4-j)).toString());
}
//末尾补足空位
for (int j = 0; j
listi.add("");
}
}
//如果此行既不是首行也不是末行
} else if (i!=0 && i!=rows-1){
//如果此行是顺序
if (order == 0) {
//先插入一个空位
listi.add("");
//按顺序插入数字
for (int j = 0; j
listi.add(new Integer(5+(i-1)*4+j+1).toString());
}
//如果此行是逆序
} else if (order == 1){
//先按逆序插入数字
for (int j = 0; j
listi.add(new Integer(5+(i-1)*4+(4-j)).toString());
}
//末尾插入一个空位
listi.add("");
}
}
numbers.add(listi);
}
System.out.println("排序后数组输出为");
System.out.println("\tA\tB\tC\tD\tE");
for (int j = 0; j
String s = (j+1)+"行\t"+numbers.get(j).get(0);
for (int k = 1; k
s = s + "\t" + numbers.get(j).get(k);
}
System.out.println(s);
}
System.out.print("要找的数字\""+bingo+"\"在:");
for (int j = 0; j
List list = numbers.get(j);
for (int j2 = 0; j2
if (list.get(j2).equals(new Integer(bingo).toString())) {
System.out.print("第"+(j+1)+"行,第"+(j2+1)+"列");
}
}
}
}
}