数字排列

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]);
	}

}

猜你喜欢

转载自blog.csdn.net/qq_40794973/article/details/83821650
今日推荐