约瑟夫go实现
2016-12-28 22:34
363 查看
package main import ( "fmt" "os" ) type Node struct { num int pNext *Node } func createList( size int) *Node{ if size<0{ os.Exit(-1) } p:=new(Node) p.num=1 q:=p for i:=2;i<=size;i++ { pnew:=new(Node) pnew.num=i p.pNext=pnew p=pnew } p.pNext=q return p } func isempty(list *Node) bool { if list.pNext==list { return true } return false } func traverse(list *Node){ if isempty(list) { return } p:=list.pNext for ;p!=list;p=p.pNext { fmt.Printf("%5d",p.num) } fmt.Printf("%5d",list.num) fmt.Println() } func listLength(list *Node) int { i:=1 for p:=list.pNext;p!=list;p=p.pNext{ i++ } return i } func jose(list *Node,n int) { p:=list.pNext count:=1 for 1<listLength(p) { for i:=1;i<n-1;i++ { p=p.pNext } tmp:=p.pNext fmt.Printf("第%d个出局的人为:%3d号\n",count,tmp.num) p.pNext=tmp.pNext p=tmp.pNext tmp=nil count++ } fmt.Println("最后获胜的是:",p.num) } func main() { list:=createList(41) traverse(list ) jose(list,3) }
相关文章推荐
- 如何实现win9X进程间数据通讯技术
- 用canvas实现红心飘飘的动画效果
- 利用Hook技术实现键盘监控
- 用Delphi实现远程屏幕抓取
- 如何利用C++ Builder 4.0 Enterprise实现对Excel97 的调用
- 应用程序敏感键的实现
- 在PB中快速实现数据库树形结构
- 在PowerBuilder中实现菜单条级权限的设置
- PB7.0中实现Jaguar GTS组件开发
- 如何实现数据的自动录入
- PowerBuilder中实现数据窗口打印预览通用方法
- 用Delphi实现远程屏幕抓取
- 用CTI实现与Web交谈
- WebClass实现动态WEB编程之理论篇
- WebClass实现动态WEB编程之实践篇
- 实现类似IE的打印网页功能
- 用DELPHI实现特色按钮
- 串行通信的基本原理及用MFC实现串口通信编程
- 如何在应用程序中实现关机功能
- 用Delphi在工业控制和自动化实现多线程进行数据采集