今天面试慧通面试题当时没解决 求教解决

kiddy1010 2006-03-29 04:30:21
假如有M个人围成一圈从某个人开始报数报到N(N〈M)的出去,后再从下一个开始报数 问编一个程序检查出最后还剩剩下的一个人。??
...全文
348 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
GaoXX 2006-04-15
  • 打赏
  • 举报
回复
顶一下
forenrol 2006-04-03
  • 打赏
  • 举报
回复
循环链表,
大概思路:
for(int i=0;i<N;i++)
{
p=p->next;
}
p->next=head;

把链表的尾节点指向头节点即可。
kiddy1010 2006-03-30
  • 打赏
  • 举报
回复
ABBLY?WHILE(TRUE)是不是WHILE(FLAG)?
YeTimmy 2006-03-29
  • 打赏
  • 举报
回复
用循环链表的话应该比较简单:)
直接每次遍历N个即可~~
zxwl 2006-03-29
  • 打赏
  • 举报
回复
约瑟夫环
abblly 2006-03-29
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
const int NUMBER=10;//M个人
const int S=3;//第N个出去
void main()
{
int arr[NUMBER];
int count=0;
int flag=0;
for (int i=0; i<NUMBER; i++)
{
arr[i] = 1;
}
while (true)
{
for(int j=0; j<NUMBER; j++)
{
if (arr[j]==1)
{
flag++;
}
if ((flag%3==0)&& (flag!=0))
{
arr[j] = 0;
flag = 0;
count++;
}
}
if (count==NUMBER-1)
break;
}

for (int k=0; k<NUMBER; k++)
{
if (arr[k]==1)
cout<<"the last one is:"<<k+1<<endl;
}
}

约瑟夫环问题

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧