C:数字排列
(输入文件: C.in 输出文件: estdout. pc2)
小明最近对数字的排列产生了强烈的兴趣,他想将任意6个连续一位整数按照每行3个
的方式排列成两行,使得这些数据满足条件: 6个数字各不相同,并且上面的数据比下面的
大、左边的数据比右边的大。请你设计程字帮助小明解决这个数字排列问题,求出数字排列
的具体排列方式。
输入数据:
第一行输入一个整数n表示测试案例的个数。此后的每行输入一个数据表示本测试案例
6个连续一位整数的起始数据,当输入的起始数据不能保证连续的6个数据都是1位数时,
显示出Out of data Space!的提示信息。
输出数据:
对应每个测试的起始数据,输出以其为首的连续六个数据的排列方式 和排列种数
样例输入:
2
7
-3
数样例输出:
Out of data space!
2 0 -2
1 -1 -3
2 1 -2
0 -1 3
2 0 -1
1 -2 -3
2 1 -1
0 -2 -3
2 1 0
-1 -2 -3
Java代码:
public class Main {
@SuppressWarnings("resource")
public static void main(String[] args) {
int n,t;
Scanner input = new Scanner(System.in);
n = input.nextInt();
for(int i = 0; i < n; i++) {
t = input.nextInt();
if(t >= -9 && t <= 4) {
show(t);
}else {
System.out.println("Out of data Space!");
}
}
}
/*
* 2 0 -2 5 3 1
* 1 -1 -3 4 2 0
*
* 2 1 -2 5 4 1
* 0 -1 -3 3 2 0
*
* 2 0 -1 5 3 2
* 1 -2 -3 4 1 0
*
* 2 1 -1 5 4 2
* 0 -2 -3 3 1 0
*
* 2 1 0 5 4 3
* -1 -2 -3 2 1 0
*/
private static void show(int n) {
int[] arr = new int[6];
for(int i = 0; i < 6; i++) {
arr[i] = n++;
}
// for(int i = 0; i < arr.length; i++) {
// System.out.print(arr[i]+" ");
// }
System.out.println(arr[5]+" "+arr[3]+" "+arr[1]);
System.out.println(arr[4]+" "+arr[2]+" "+arr[0]);
System.out.println(arr[5]+" "+arr[4]+" "+arr[1]);
System.out.println(arr[3]+" "+arr[2]+" "+arr[0]);
System.out.println(arr[5]+" "+arr[3]+" "+arr[2]);
System.out.println(arr[4]+" "+arr[1]+" "+arr[0]);
System.out.println(arr[5]+" "+arr[4]+" "+arr[2]);
System.out.println(arr[3]+" "+arr[1]+" "+arr[0]);
System.out.println(arr[5]+" "+arr[4]+" "+arr[3]);
System.out.println(arr[2]+" "+arr[1]+" "+arr[0]);
}
}