ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

Josephu ÎÊÌâ(Сº¢³öÁÐÎÊÌâ)
2014-11-24 02:01:57 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:314´Î
Tags£ºJosephu ÎÊÌâ Сº¢

JosephuÎÊÌâΪ£ºÉè±àºÅΪ1£¬2£¬¡­nµÄn¸öÈËΧ×øһȦ£¬Ô¼¶¨±àºÅΪk£¨1<=k<=n£©µÄÈË´Ó1¿ªÊ¼±¨Êý£¬Êýµ½m µÄÄǸöÈ˳öÁУ¬ËüµÄÏÂһλÓÖ´Ó1¿ªÊ¼±¨Êý£¬Êýµ½mµÄÄǸöÈËÓÖ³öÁУ¬ÒÀ´ÎÀàÍÆ£¬Ö±µ½ËùÓÐÈ˳öÁÐΪֹ£¬Óɴ˲úÉúÒ»¸ö³ö¶Ó±àºÅµÄÐòÁС£
Êý×éʵÏÖ£º
#include
#include
int Josephu(int n, int m)
{
int flag, i, j = 0;
int *arr = (int *)malloc(n * sizeof(int));
for (i = 0; i < n; ++i) //Êý×é³õʼ»¯Îª1
arr[i] = 1;
for (i = 1; i < n; ++i)
{
flag = 0;
while (flag < m)
{
if (j == n)
j = 0;
if (arr[j])
++flag;
++j;
}
arr[j - 1] = 0;
printf("µÚ%4d¸ö³ö¾ÖµÄÈËÊÇ£º%4dºÅ\n", i, j);
}
free(arr);
return j;
}
int main()
{
int n, m;
scanf("%d%d", &n, &m);
printf("×îºóʤÀûµÄÊÇ%dºÅ£¡\n", Josephu(n, m));
system("pause");
return 0;
}


Á´±íʵÏÖ£º
#include
#include
typedef struct Node
{
int index;
struct Node *next;
}JosephuNode;
int Josephu(int n, int m)
{
int i, j;
JosephuNode *head, *tail;
head = tail = (JosephuNode *)malloc(sizeof(JosephuNode));
for (i = 1; i < n; ++i)
{
tail->index = i;
tail->next = (JosephuNode *)malloc(sizeof(JosephuNode));
tail = tail->next;
}
tail->index = i;
tail->next = head;
for (i = 1; tail != head; ++i)
{
for (j = 1; j < m; ++j)
{
tail = head;
head = head->next;
}
tail->next = head->next;
printf(¡°µÚ%4d¸ö³ö¾ÖµÄÈËÊÇ£º%4dºÅ\n¡±, i, head->index);
free(head);
head = tail->next;
}
i = head->index;
free(head);
return i;
}
int main()
{
int n, m;
scanf(¡°%d%d¡±, &n, &m);
printf(¡°×îºóʤÀûµÄÊÇ%dºÅ£¡\n¡±, Josephu(n, m));
system(¡°pause¡±);
return 0;
}


¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºÊý¾Ý½á¹¹ ÃæÊÔÌâ 1 ÏÂһƪ£ºÓ²¼þ¹¤³Ìʦ½á¹¹»¯ÃæÊÔÌâ¿â

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿