| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1945 人关注过本帖
标题:猴子报大王的程序怎么编啊
只看楼主 加入收藏
wuyu0618
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-3-24
收藏
 问题点数:0 回复次数:19 
猴子报大王的程序怎么编啊
就是有一群猴子,报1234,报1的猴子再站出来,再报1234,就这样,选出最后一个报一的猴子
搜索更多相关主题的帖子: 大王 猴子 
2005-04-13 13:22
形影随从
Rank: 1
等 级:新手上路
威 望:1
帖 子:188
专家分:0
注 册:2005-3-15
收藏
得分:0 
题目意思都还没看懂。说清楚点!!!

2005-04-13 16:04
乌鸦丘比特
Rank: 1
等 级:新手上路
威 望:2
帖 子:625
专家分:0
注 册:2004-7-19
收藏
得分:0 
约瑟夫问题,最简单的办法是循环队列模拟

我喜欢创造,一只扑腾着翅膀向天空飞翔的乌鸦
2005-04-13 16:52
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
收藏
得分:0 
我用数组做过   不过程序没了
数组全部设 1     报1 的猴子设置成0  

动于心而静如水
2005-04-13 19:28
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
#include<iostream>          //本程序是进行循环链表的基本运算
#include<stdlib.h>          //首先设立一个计数器,当数到3时就进行筛选,剩下的最后一个就是首领      
#define N 7               
using namespace std;
struct node{int data;
            node *next;
};
node* creat(void)           //建立循环链表
{node *head,*p; int i;
 head=(node*)malloc(sizeof(node));
 head->data=1;
 head->next=head;
 for(i=N;i>1;i--)
 {p=(node*)malloc(sizeof(node));
  p->data=i;
  p->next=head->next;
  head->next=p;
 }
 return head;
}
void output(node *head)  //输出循环链表
{node *p;
 p=head;
 cout<<"循环链表的数字;\n";
 do{cout<<p->data<<endl;p=p->next;
 }while(p!=head);
}
void play(node *head,int n)  //进行筛选
{node *p,*q; int k=N,c=1;//c是计数器   
p=head;
cout<<"筛选的数字:\n";
while(k>1)
{if(c==n-1)
{q=p->next;cout<<q->data<<endl;
 p->next=q->next;
 free(q);
 c=0;k--;
}
else {c++;p=p->next;}
}
cout<<"首领:"<<p->data<<endl;
}
void main()
{node *head;
head=creat();
output(head);
play(head,3);
}

c++/C + 汇编 = 天下无敌
2005-04-14 14:49
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
我发的就是楼主想要的程序,经过验证的,绝对正确

c++/C + 汇编 = 天下无敌
2005-04-14 14:59
620LCC
Rank: 1
等 级:新手上路
帖 子:78
专家分:0
注 册:2005-3-25
收藏
得分:0 
五楼的好像是用c++嘛

2005-04-15 00:58
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
收藏
得分:0 
没有用面向对象,只能说用了c++的cin和cout对象啊

我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2005-04-15 01:08
Murray
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2005-4-10
收藏
得分:0 
呵呵,他想要C的解决办法

2005-04-15 11:11
yuki
Rank: 2
等 级:新手上路
威 望:5
帖 子:508
专家分:0
注 册:2005-2-4
收藏
得分:0 

我用数组的方法写了一个,好像有点笨拙。。 #include <stdio.h> #include <conio.h>

#define MONKEY_NUMBER 20

int main() { /* 创建一个猴子列队 */ int monkeys[MONKEY_NUMBER]; /* 在队列中的猴子数目 */ int monkey_in_queue=MONKEY_NUMBER; /* 初始化猴子的编号 */ register int i; int id,counter=1; for(i=0;i<MONKEY_NUMBER;monkeys[i++]=i+1); /* 模拟报数 */ for(i=0;i<MONKEY_NUMBER;i++) { if(counter==1&&monkeys[i]!=-1) { monkeys[i]=-1; monkey_in_queue--; counter++; } else if(monkeys[i]!=-1&&counter<=4) {counter++;} if(counter==4) {counter=1;} if(monkey_in_queue>1&&i+1>=MONKEY_NUMBER) i=-1; } /* 输出结果 */ for(i=0;i<MONKEY_NUMBER;i++) { if(monkeys[i]!=-1) { id=i; printf("@"); } else { printf("-"); } } printf("\nThe %d monkey is the last monkey in the queue.\n",id); getch(); return 1; }


我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光
2005-04-15 21:50
快速回复:猴子报大王的程序怎么编啊
数据加载中...
 
   



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

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