| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1142 人关注过本帖
标题:【求助】猴子选大王 代码中的一个问题
只看楼主 加入收藏
烈性炸药
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-11-6
收藏
 问题点数:0 回复次数:0 
【求助】猴子选大王 代码中的一个问题
一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王
//link.h
template <class T>
struct node{
    T data;
    node<T> *next;
};
//猴子选大王.cpp
#include<iostream.h>
#include"link.h"//引入头文件
void init_list(node<int> *first,int m)
{
    //生成m个节点的循环链表
    node<int> *p,*q;
    p=first;
    p->data=1;
    for(int i=2;i<=m;i++){
        q=new node<int>;
        p->next=q;
        p=q;
        p->data=i;
        p->next=first;
    }
}
void main()
    {
    int m,n,l;
    cout<<"请输入猴子的个数:";
    cin>>m;
    cout<<"请输入N:";
    cin>>n;
    node<int> *first;
    first=new node<int>;
    first->next=first;
    init_list(first,m);
    node<int> *p,*q;
    q=new node<int>;
    p=new node<int>;
    p=first;
    while(p->next!=p)
    {
    //循环的终止条件为链表只剩一个节点
    for(int i=1;i<n;i++)
    {
    if(i==n-1)                                                //就是这里,为什么不是i==n呢?高手指点下!!!!谢谢!!!
    q=p;
    p=p->next;
    }
        p=p->next;
        q->next=p;
    }
    cout<<"成为大王的猴子为第"<<p->data<<"个"<<endl;
}

[[italic] 本帖最后由 烈性炸药 于 2008-1-2 12:31 编辑 [/italic]]
搜索更多相关主题的帖子: 大王 猴子 代码 
2008-01-02 12:24
快速回复:【求助】猴子选大王 代码中的一个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018491 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved