?? josephus.c
字號:
#include <stdio.h>
#include <stdlib.h>
/*josephus問題的算法
問題:有n個人坐在周旁圍成一周,從第s個人開始報數,第m人出列,然后從下一個人重新開始報數,數到第m人又出列
如此反復,直到所有人全部出列位置。n,s,m給定,求出按出列次序得到的n個人員的序列*/
struct List
{
DataType element[max];
int n;
};
typedef struct List *Plist;
int deletelist(Plist palist, int p)
{
int q;
if (p<0||p>palist-> -1)
{
print("Not exist!\n");
return 0;
}
for (q=p; q<palist->n -1;q++)palist->element[q]=palist->element[q+1];
palist->n =palist->n -1;
return 1;
}
void josephus(Plist palist, int s, int m)
{
int s1, i;
DataType w;
s1 = s-1;
for (i=palisht->n;i>0;i--)
{
s1=(s1+m-1)%i;
w= retreve(palist,s1);//求出下標為s1的元素的值,此函數需要自己寫出來?。。。?!
printf("Out person%d\n",w);
deletelist(palist,s1);
}
}
int main()
{
printf("Hello world!\n");
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -