逢N退出的图形化算法设计.pdfVIP

  • 8
  • 0
  • 约1.63万字
  • 约 5页
  • 2017-08-15 发布于湖北
  • 举报
逢N退出的图形化算法设计.pdf

第 24卷第 5期 四川文理学院学报 2014年 9月 VoI_24 No.5 SichuanUniversityofArtsandScienceJournal Sep.2014 逢 N退出的图形化算法设计 卫洪春 ,蒲国林 ,王安志 (四川文理学院 计算机学院,四川 达州 635000) 摘 要:以”循环报数、逢N退出”问题求解过程的可视化演示为 目的,采用C十+面向对象思想,利用单向 循环链表的相关理论和MFC集成环境等技术,设计数据类,结点类及链表类,将问题的求解过程以图形化的方 式展现 ,获得 了以直观方式观察求解过程的结果. 关键词:逢N退出;数组;结点;链表;图形;c十+ 中图分类号:TP301.6 文献标志码:A 文章编号:1674—5248(2014)05--0056—05 中以数组方式实现的代码如下: 1 提出问题 #include iostream 问题描述 :有 n个人 围成一圈,从编号 1开始 #defineNUM 13 //总人数 顺序排号,一直到n.从第 1个人开始,顺次以1, usingnamespacestd; 2,….N循环报数 (从 1到 N报数),凡报到数字 voidmain(){ intnum — NUM ,flag一 1, N的人退 出圈子,问最后 留下的人 的编号是多 numArray[NUM+1]; 少?[如图 1所示. for(inti一 0 ;i NUM + 1;i+ + )nu— mArray~i]: i;//初始化一维数组的元素 田田 口团 while(num !一 1){ //若当前状态下剩余 的人数 num大于 1. 固 曰 for(i— l;i NUM+ 1;i++){ if(numArray-[i~!一0){//若数组的第 i个 曰 口 元素不为零 if(flag一一3){flag=0;numArray[i]=0; 回固 口 口口 num 一 一 ;f flag++ ;}} } for(i===1;i NUM+ 1;i++ ) 图 l 初 始状 态 if(numArray[i]!一0)cout”最后剩下 2 求解方式 的人的编号是:”numArray[i]”\n\n”; 该问题是一个古老而经典的游戏,会在很多 求解结果:最后剩下的人的编号是:13 场合用到.在计算机环境下,也可以有很多处理办 上述算法是利用 C++的一维数组实现.由 法,如数组,单 向循环链表等.例如在 C++环境 于是n个人围成一圈,可利用单 向链表来完成.但 收稿 日期 :2013一l2一l8

文档评论(0)

1亿VIP精品文档

相关文档