思路分析:
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
/*
假设有13张牌,分别是X(N):
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13
第一步,先把最下面一张拿到最上面
X13 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12
然后再将最后一张拿出来放到桌面上,是A
X13 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11,X12=A
第二步,拿下面一张票放到最上面
X11 X13 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10,X12=A
再将最后一张拿出来放到桌面上,是2
X11 X13 X1 X2 X3 X4 X5 X6 X7 X8 X9,X12=A,X10=2,
第三步,拿下面一张票放到最上面
X9 X11 X13 X1 X2 X3 X4 X5 X6 X7 X8
再将最后一张拿出来放到桌面上,是3
X9 X11 X13 X1 X2 X3 X4 X5 X6 X7 ,X12=A,X10=2,X8=3
X7 X9 X11 X13 X1 X2 X3 X4 X5,X12=A,X10=2,X8=3,x6=4
X5 X7 X9 X11 X13 X1 X2 X3,X12=A,X10=2,X8=3,x6=4,X4=5
X3 X5 X7 X9 X11 X13 X1,X12=A,X10=2,X8=3,x6=4,X4=5,X2=6
X1 X3 X5 X7 X9 X11,X12=A,X10=2,X8=3,x6=4,X4=5,X2=6,X13=7
X11 X1 X3 X5 X7,X12=A,X10=2,X8=3,x6=4,X4=5,X2=6,X13=7,X9=8
X7 X11 X1 X3,X12=A,X10=2,X8=3,x6=4,X4=5,X2=6,X13=7,X9=8,X5=9
X3 X7 X11,X12=A,X10=2,X8=3,x6=4,X4=5,X2=6,X13=7,X9=8,X5=9,X1=10
X11 X3,X12=A,X10=2,X8=3,x6=4,X4=5,X2=6,X13=7,X9=8,X5=9,X1=10,X7=J
X3,,X12=A,X10=2,X8=3,x6=4,X4=5,X2=6,X13=7,X9=8,X5=9,X1=10,X7=J,X11=Q
X3 = K
看到这里应该有规律了吧?就是隔一个未知数自增一次,
也就是那么原始排序应该是
?,A,?,2,?,3,?,4,?,5,?,6,?(已经是13张牌了)
7,A,?,2,?,3,?,4,?,5,?,6,?(隔一个未知数自增一次)
7,A,?,2,8,3,?,4,9,5,?,6,10(隔一个未知数自增一次)
7,A,?,2,8,3,J,4,9,5,?,6,10
7,A,Q,2,8,3,J,4,9,5,?,6,10
7,A,Q,2,8,3,J,4,9,5,K,6,10
PS:这个输出检查跟**一样(逗号完还要空格间隔)
*/
System.out.println("7, A, Q, 2, 8, 3, J, 4, 9, 5, K, 6, 10");
}
}
答案是: