c++猴子选大王问题

打虎少年葛二蛋 2020-02-05 08:07:16

关键下一轮不是从1开始数了
...全文
445 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
YXTS122 2020-02-06
  • 打赏
  • 举报
回复
#include<stdio.h> typedef struct node { int data; struct node *next; }linklist; void selectking(linklist *head,int c) { linklist *p,*q; int t; p=head; t=0; do { t++; if ((t%c)!=0) { q=p; p=p->next; } else { q->next=p->next; printf("%5d",p->data); p=p->next; } } while (p->next!=p); } int main() { linklist *p,*q,*head; int i=1; head=q=p=(linklist*)malloc(sizeof (linklist)); p->data=i; i++; for (;i<=30;i++) { p=(linklist*)malloc(sizeof (linklist)); p->data=i; q->next=p; q=p; } q->next=head; selectking(head,3); return 0; }
AngelJisoo 2020-02-05
  • 打赏
  • 举报
回复
这波操作厉害啊
  • 打赏
  • 举报
回复
谢谢谢谢,我去百度约瑟夫环的问题呢,特别感谢
寻开心 2020-02-05
  • 打赏
  • 举报
回复
下一轮从1开始和不是1开始完全没有区别。 就是约瑟夫环,只是把说法变了一下。
3的倍数出列,和123123这样数,到3的时候出列,没有任何差别
所以,如果只是要代码的话, 随便百度一下约瑟夫环 c语言, 代码成千上万,自己找吧
  • 打赏
  • 举报
回复
引用 7 楼 初学小菜的回复:
引用 4 楼 qq_17756387 的回复:
引用 1 楼 初学小菜 的回复:
第二次就是从1开始数
我刚刚问了老师,老师说出去后继续下一个数开始数,不是从1重新开始
一轮是走完一圈……你说的那个意思是一次,这个问题叫做约瑟夫环,百度有详细解释
好嘚,谢谢谢谢,我给您把积分结了
一星伴月 2020-02-05
  • 打赏
  • 举报
回复
引用 4 楼 qq_17756387 的回复:
引用 1 楼 初学小菜 的回复:
第二次就是从1开始数
我刚刚问了老师,老师说出去后继续下一个数开始数,不是从1重新开始
一轮是走完一圈……你说的那个意思是一次,这个问题叫做约瑟夫环,百度有详细解释
寻开心 2020-02-05
  • 打赏
  • 举报
回复
哪儿有第二轮啊?!
人是转圈儿的, 不断的继续数下去, 逢3的倍数就排除一个,总共排出29个, 3*29 所以从1数到87后就剩下一个然后就结束了呗

变形的约瑟夫环
qybao 2020-02-05
  • 打赏
  • 举报
回复
约瑟夫环问题
  • 打赏
  • 举报
回复
引用 1 楼 初学小菜 的回复:
第二次就是从1开始数
我刚刚问了老师,老师说出去后继续下一个数开始数,不是从1重新开始
一星伴月 2020-02-05
  • 打赏
  • 举报
回复
就是出去的就不会被数了
一星伴月 2020-02-05
  • 打赏
  • 举报
回复
再几轮以后1也会出圈,就不会从1开始了
一星伴月 2020-02-05
  • 打赏
  • 举报
回复
第二次就是从1开始数

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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