《算法竞赛宝典》基础算法艺术

21 棋子移动2

2020-05-05  本文已影响0人  DONGWEILAI

21 棋子移动2
现在,修罗王和邪狼已经陷入了魔法棋阵中,魔法棋阵有2N个棋子(N≥4)排成一行,开始位置为白子全部在左边,黑子全部在右边,例如当N=4时,棋子排列情况为:
〇〇〇〇●●●●
允许每一步将相邻两个棋子交换位置,最后形成黑白相间的排列。只要求出移动步骤即可将修罗王和邪狼抓捕归案。

【输入格式】
一个整数N。
【输出格式】
输出移动步骤。

找规律,然后设计递归

package algorithmclassic.ch02;

import java.util.Scanner;

/**
 * @author Dylan
 * @date 2020/5/4 - 23:53
 */
public class Q21 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        f(n, n-1);
    }

    public static void f(int a, int num){
        if(num <= 0) return;
        int temp = a;
        for (int i = 0; i < num; i++) {
            System.out.printf("%d <-> %d\n", a, a+1);
            a -= 1;
        }
        f(temp + 1, num - 1);
    }
}


上一篇下一篇

猜你喜欢

热点阅读