问题描述 :
圆桌上围坐着2n个人。其中n个人是好人,另外n个人是坏人。如果从第一个人开始数数,数到第m个人,则立即处死该人;然后从被处死的人之后开始数数,再将数到的第m个人处死……依此方法不断处死围坐在圆桌上的人。试问预先应如何安排这些好人与坏人的座位,能使得在处死n个人之后,圆桌上围坐的剩余的n个人全是好人。
输入说明 :
输入:好人和坏人的人数n(<=32767)、步长m(<=50);
输出说明 :
输出2n个大写字母,‘G’表示好人,‘B’表示坏人,50个字母为一行。
输入范例:
52 6
输出范例:
BGGBGBGGBBBBGGGGBBBGBGGBGBBGGBBGBGBBGGGBBBGBGGBBGG
BBGBBGGGGBBBBGGBGGBBGBBGGBGBBGGBBBGGBGGBBGGGBBGBGG
GBGB
#include<iostream>
using namespace std;
struct ListNode
{
int data;
struct ListNode *next;
};
ListNode *create(int num)
{
//创建循环链表
ListNode *head=new ListNode;
head->next=NULL;
ListNode *r=head;
for