C语言程序设计问题`请给具体点的答案,谢谢

2024-12-16 07:26:45
推荐回答(2个)
回答1:

/*********************************************************************************************************************************
约瑟夫问题:
编号为1,2,3...n的n个人围成一圈,从编号为k的人开始报数,
报到m的人出列,再从出列的下一个人开始报数,报到m的人又
出列,直到所有人都出列,求这n个人的出列顺序.
用C语言编写算法,将结果以顺序表和单链表输出
*********************************************************************************************************************************/
#include "iostream"
using namespace std;
#define M 100
int count=0;
int order[M];
void Joseph(int n,int k,int m)
{
int flag[M]={0,};
int count=0;
for(int i=k;i<=n;i++)
{
if(flag[i]==0)
{
count++;
if(count==m)
{
flag[i]=1;
count=0;
cout< }
}
if(i+1>n)
i=0;
}
}
void main()
{
int n,k,m;
cout<<"输入总人数:"< cin>>n;
cout<<"第几个人开始报数?"< cin>>k;
cout<<"报到数字几的人退出?"< cin>>m;
cout<<"退出的人的顺序为:"< Joseph(n,k,m);
}

回答2:

单链表...