#include <stdio.h>
#include <malloc.h>
#include <memory.h>
//pLeft长度固定为N, 表示队伍中留下人的位置.nLeave是离开的人数, 判断结束
//输出是依次从队伍中离开的人的序号.
int fun(unsigned char *pLeft, int N, int *nLeave, int m, int nStart)
{
int nCount=0,nPoint=nStart;
if(pLeft==1)
nCount++;
while(nCount<m)
{
nPoint=nPoint%N+1;
if(pLeft==1)
nCount++;
}
(*nLeave)++;
pLeft=0;
return nPoint;
}
void main(int argc, char *argv[])
{
int n=0,m=0,nLeave=0,nStart=1;
printf("输入 人数n,上限m.\n");
scanf("%d,%d",&n,&m);
unsigned char *pLeft=(unsigned char *)calloc(n+1,sizeof(char));
memset(pLeft,1,(n+1)*sizeof(char));
while(nLeave<n)
printf("%d\t",nStart=fun(pLeft, n, &nLeave, m, nStart));
free(pLeft);
}
--------输出,20个人,m=26------------
输入 人数n,上限m.
20,26
6 13 1 11 3 17 14 12 16 2
10 8 15 5 9 18 20 7 4 19 强人啊?
我先运行下试试
顺便请问这个用TC和用VC运行都一样吧
好使的话就点钱
回复 #33 jerrysusan 的帖子
一样 库文件要引用好 没题了?好像楼主没5000NB. 没有可以拿RMB换么。同样是劳动所得,哪怕是搜索出来的目前还需要两道题
页:
1
[2]