拼出缘分

    xiaoxiao2023-11-09  156

    题目描述

    13计科的ppmm紫菱给她的追求者们出了道难题,现在有2n个1到9的整数为:2个“1”,2个“2”,….,2个”n”。看谁能用这2n个数字拼成一个数,满足2个“1”中间有1个数字,2个“2”中间有2个数字,…,2个“n”中间有n个数字。你能解出这题赢得紫菱的芳心吗?

    输入

    一个整数n, (1<=n<=9)

    输出

    按由小到大顺序输出满足条件的拼出来的数字,每个数字占一行

    样例输入

    3

    样例输出

    231213 312132

    代码

    import java.util.Scanner; public class Main { int n; int[] A; boolean[] Num; boolean[] Mark; public Main() { Scanner sc = new Scanner(System.in); n = sc.nextInt(); A = new int[2 * n]; Num = new boolean[n + 1]; Search(0); } void Search(int pos) { if (pos == 2 * n) { for (int k = 0; k < 2 * n; k++) System.out.print(A[k]); System.out.println(); return; } if (A[pos] != 0) Search(pos + 1); for (int i = 1; i <= n; i++) { if (Num[i] == false && pos + i + 1 < 2 * n && A[pos] == 0 && A[pos + i + 1] == 0) { A[pos] = i; A[pos + i + 1] = i; Num[i] = true; Search(pos + 1); A[pos] = 0; A[pos + i + 1] = 0; Num[i] = false; } } } public static void main(String[] args) { Main p = new Main(); } }
    最新回复(0)