编辑代码

#include <stdio.h>
#include <string.h>
#include <stdint.h>

int main () {
    uint8_t dest_num = 0;
    uint8_t step_num = 0;
    uint8_t people_num = 2;
    uint8_t dest_turn_buf[8];
    for (uint8_t p = 1; p <= 8; p++)
    { 
        people_num = p;
        for (uint8_t t = 1; t <= 8; t++)
        {   
            dest_num = t;
            memset(dest_turn_buf, 0, 8);
            dest_turn_buf[0] = dest_num;
            step_num = 8 / people_num;   
            for (uint8_t i = 1, j = dest_num; i < (people_num / 2 + people_num % 2); i++)
            {
                if ((j + step_num) <= 8)
                {
                    dest_turn_buf[i] = j + step_num;
                    j = j + step_num;
                }
                else
                {
                    if ((j + step_num) - 8 < step_num)
                    {
                        dest_turn_buf[i] = step_num - (step_num - ((j + step_num) - 8));
                        j = step_num - (step_num - ((j + step_num) - 8));
                    }
                    else if ((j + step_num) - 8 == step_num)
                    {
                        dest_turn_buf[i] = step_num;
                        j = step_num;
                    } 
                }
            } 

            step_num = 4;
            
            for (uint8_t i = 0, j = (people_num / 2 + people_num % 2); i < people_num / 2 ; i++,j++)
            {
                if ((dest_turn_buf[i] + step_num) <= 8)
                {
                    dest_turn_buf[j] = dest_turn_buf[i] + step_num;
                }
                else
                {
                    if ((dest_turn_buf[i] + step_num) - 8 < step_num)
                    {
                        dest_turn_buf[j] = step_num - (step_num - ((dest_turn_buf[i] + step_num) - 8));
                    }
                    else if ((dest_turn_buf[i] + step_num) - 8 == step_num)
                    {
                        dest_turn_buf[j] = step_num;
                    } 
                }
            } 
            printf("《People:%d》《Init:%d》[", people_num, dest_num);
            for (uint8_t i = 0; i < 8; i++)
            printf(" %d", dest_turn_buf[i]);
            printf("]\n");
        }
    }
    return 0;
}