文档章节

约瑟夫问题

YKIT
 YKIT
发布于 2015/10/11 11:17
字数 132
阅读 70
收藏 0
//10个小屁孩报数,报到3退出,继续报,选出孩子王
struct tagKing
{
 int index;
 tagKing * pNext;
};
void main()
{
 int n = 10;
 tagKing * pKings = new tagKing[n];
 for (int i=0;i<n;i++)
 {
  pKings[i].index = i+1;
  pKings[i].pNext = &pKings[i+1];
  if(i+1>=n)
   pKings[i].pNext = &pKings[0];
 }
 tagKing * pFirst = &pKings[0];
 tagKing * pCur = pFirst;
 while(pCur->pNext->index != pCur->index)
 {
  tagKing * pTmp = pCur->pNext->pNext;
  //1-2-3-4-5-6-7-8-9-10
  pCur = pCur->pNext->pNext->pNext;
  printf("index=%d,need out\n",pTmp->index);
  pTmp->index = pTmp->pNext->index;
  pTmp->pNext = pTmp->pNext->pNext;
 }
 
 printf("the king is %d\n",pCur->pNext->index);
}

© 著作权归作者所有

共有 人打赏支持
YKIT

YKIT

粉丝 14
博文 42
码字总数 8404
作品 3
苏州
后端工程师

暂无文章

面向对象设计原则(OOP)

单一职责原则(Single responsibility principle)又称单一功能原则。它规定一个类应该只有一个发生变化的原因。 核心原则:低耦合,高内聚。 一个类,应该只有一个引起它变化的原因,也就是...

gackey
38分钟前
2
0
C++ 锁

C++提供了两种常用的锁,std::lock_guard<Lockable &T>和std::unique_lock<Lockable &T>。通常使用场景下,这两个锁用法一致。即,在构造锁对象时上锁,在析构锁对象时解锁。使用户从上锁/解...

yepanl
41分钟前
2
0
Kali Linux Docker 練習

docker pull kalilinux/kali-linux-docker docker run -t -i kalilinux/kali-linux-docker /bin/bash apt-get update apt-get install htop apt-get install nmap apt-get install wpscan ap......

BaiyuanLab
今天
2
0
通俗大白话来理解TCP协议的三次握手和四次分手

最近在恶补计算机网络方面的知识,之前对于TCP的三次握手和四次分手也是模模糊糊,对于其中的细节更是浑然不知,最近看了很多这方面的知识,也在系统的学习计算机网络,加深自己的CS功底,就...

onedotdot
今天
2
0
TiDB 在爱奇艺的应用及实践

爱奇艺,中国高品质视频娱乐服务提供者,2010 年 4 月 22 日正式上线,推崇品质、青春、时尚的品牌内涵如今已深入人心,网罗了全球广大的年轻用户群体,积极推动产品、技术、内容、营销等全方...

TiDB
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部