C语言练习题!!求高手解答
2.a,b,c,d,e,f,g七个人围着一个桌子从a开始123报数,数到3的人退出最后剩一个人的时候结束,问最后剩下谁?编程实现谢谢回答可是我还没学函数·。。能不能不用函...
2. a,b,c,d,e,f,g七个人围着一个桌子
从a开始123报数,数到3的人退出
最后剩一个人的时候结束,问最后剩下谁?
编程实现
谢谢回答 可是 我还没学函数·。。能不能不用函数做出来啊·。 做出后给分
我的意思是我是初学者 只学了·循环 数组 剩下的 函数都没学
if for while 和数组 我学了这些就 。
你写的链表我不懂啊 展开
从a开始123报数,数到3的人退出
最后剩一个人的时候结束,问最后剩下谁?
编程实现
谢谢回答 可是 我还没学函数·。。能不能不用函数做出来啊·。 做出后给分
我的意思是我是初学者 只学了·循环 数组 剩下的 函数都没学
if for while 和数组 我学了这些就 。
你写的链表我不懂啊 展开
2个回答
展开全部
#include "stdafx.h"
#include <iostream>
using namespace std;
struct child
{
int num;
child *link;
};
void init(int n); //初始化
void gamestart(int n,int m);//模拟游戏函数
child *head;//链表头
child *present; //当前结点
child *end;//链表尾
int main(int argc, char* argv[])
{
int m,n;
cout<<"请输入孩子的个数:"<<endl;
cin>>n;
cout<<"请输入正整数m"<<endl;
cin>>m;
init(n);
gamestart(n,m);
cout<<"第"<<present->num<<"个孩子获得胜利!"<<endl;
delete present;
return 0;
}
void init(int n)
{
head = new child;
head->num =1;
present=head;
for(int i=1;i<n;i++)
{
present->link=new child;
present->link->num=i+1;
present=present->link;
}
present->link=head;
end=present;
present=head;
}
void gamestart(int n,int m)
{
child *pGuard=end;
while(n!=1)
{
for(int j=1;j<m;j++)
{
pGuard=present;
present=present->link;
}
pGuard->link=present->link;
delete present;
present=pGuard->link;
n--;
}
}
#include <iostream>
using namespace std;
struct child
{
int num;
child *link;
};
void init(int n); //初始化
void gamestart(int n,int m);//模拟游戏函数
child *head;//链表头
child *present; //当前结点
child *end;//链表尾
int main(int argc, char* argv[])
{
int m,n;
cout<<"请输入孩子的个数:"<<endl;
cin>>n;
cout<<"请输入正整数m"<<endl;
cin>>m;
init(n);
gamestart(n,m);
cout<<"第"<<present->num<<"个孩子获得胜利!"<<endl;
delete present;
return 0;
}
void init(int n)
{
head = new child;
head->num =1;
present=head;
for(int i=1;i<n;i++)
{
present->link=new child;
present->link->num=i+1;
present=present->link;
}
present->link=head;
end=present;
present=head;
}
void gamestart(int n,int m)
{
child *pGuard=end;
while(n!=1)
{
for(int j=1;j<m;j++)
{
pGuard=present;
present=present->link;
}
pGuard->link=present->link;
delete present;
present=pGuard->link;
n--;
}
}
展开全部
这个问题是著名的约瑟夫问题的一个实例,你可以在百度百科上看一看这个问题的解答方案http://baike.baidu.com/view/213217.htm?fr=ala0_1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询