请问这个代码该怎么写?

题目描述
有 2n 个棋子(n≥4)排成一行,开始位置为白色全部在左边,黑色全部在右边。(其中字母 O 表示白色棋子,字母 X 表示黑色棋子)OOOOXXXX。移动棋子的规则是:每次必须同时移动相邻两个棋子,颜色不限,可以左移也可以右移一空位上去,但不能调换两个棋子的左右位,每次移动必须跳过若干个棋子(不能平移),要求最后能够移成黑白相间的一行棋子。例如当 n=4 时,最终排列情况为:OXOXOXOX。输出棋子移动的过程。

输入描述
多组输入,每组一个正整数,占一行。

输出描述
输出移动步骤,每一步操作占一行

样例输入
4

样例输出
4,5-->9,10

8,9-->4,5

2,3-->8,9

7,8-->2,3

1,2-->7,8

楼上的代码来自:
https://blog.csdn.net/weixin_44609585/article/details/86715054
但是看上去这个才是正解:
https://blog.csdn.net/JetRichardLee1/article/details/52301247

如果有问题,请在我下面留言,我再帮你看。

大于或者大于4的话,基本上都是用递归,以4作为递归结束点

#include<stdio.h>
void move(int k)
{
    if(k==4)
    {
        printf("4,5-->9,10\n");
        printf("8,9-->4,5\n");
        printf("2,3-->8,9\n");
        printf("7,8-->2,3\n");
        printf("1,2-->7,8\n");

    }
    else
    {
        printf("%d,%d-->%d,%d\n",k,k+1,2*k+1,2*k+2);
        printf("%d,%d-->%d,%d\n",2*k-1,2*k,k,k+1);
        move(k-1);
    }


}

int main()
{
    int N;
    scanf("%d",&N);
    while(N<4)
    scanf("%d",&N);
    move(N);
    return 0;
}

结果图

图片说明

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^