C语言,饭桌上的报数游戏

兄弟姐妹帮我讲解下,C语言,饭桌上的报数游戏?

饭桌上的报数游戏。设n(0<n<20)个人围着一张圆桌坐下,按顺时针方向给每人编号1,2,3,…,n。随机选定一个正整数m(m<n,且为素数。注:这个要求得由程序来确保),一开始时,任意指定一人作为起始,从他开始从1起报数(当然是按顺时针方向向下),报到m及m的倍数的人喝一杯酒,该人停一轮报数。当每个m在使用过程中有3个人喝了酒,则必须换一个新的m(新m必须确保是以前没用过的),并从刚刚喝酒的那个人的下一个从1开始报数。如此下去,当有人喝到了他自己的第5杯酒时,游戏停止。程序要显示出所有人喝酒的杯数,同时将第一个喝到5杯酒的人指出来。
最新回答
性感的上帝

2024-11-25 03:01:43

此题显然有误——

  1. 当n取1或2时能找到比1、2小的素数m吗?

  2. 当n取3时,比3小的素数只有2一个,喝3杯后肯定没有人喝到5杯,出不了结果,还要继续喝下去,但得换一个“以前没有用过的素数m”,只有一个2,再换换谁呢?

  3. 当n取5时,提问者可以自行演绎一下,同样存在2所指出的问题。

  4. 这题也很毛糙,如“将第一个喝到5杯酒的人指出来”——假设没有上述错误,按照题设规则,难道还会有第二个、第三个……喝到5杯的人吗?不可能啊,只要有人喝到5杯了游戏立马就结束了!