Josephus问题的一个C语言程序
来源:互联网 发布:面试java项目技术难点 编辑:程序博客网 时间:2024/06/06 17:31
Josephus问题的一个C语言程序
问题描述:
n个人围坐一圈,从第一个人开始报数“1,2,3,4….m,数到m的人出局,然后下一个人从1开始继续,这样直到最后一个人为胜利者,输出胜利者是第几个人。
函数功能:
功能:josep函数,输入成员数n和停止数m,返回最后留下的人的编号。
代码:
以下代码在VS2012平台创建:
#include<stdio.h>#include<stdlib.h>int josep( int , int );int delay();int main(){ int flag=1; while(flag) { int number,point,winner; printf( "************************welcome*************************\n** 游戏规则:任意几个人围坐一圈,从第一个人开始报数 **\n** “1,2,3,4....,数到规定的数字的人出局,然后下 **\n** 一个人从1开始继续,这样直到最后一个人为胜利者。 **\n********************************************************\n\n请输入玩家人数(整数):" ); scanf( "%d", & number ); printf( "\n请输入报数最大值(整数):" ); scanf( "%d", & point ); winner=josep(number,point); printf( "\n\n玩家%d是最终胜利者!\n\n",winner ); flag=3; while (3==flag)//判断是否重新输入数字 { printf( "\n\n是否重新输入数字(1为是,2为否)?\n请输入:" ); scanf( "%d", & flag ); if (1==flag) flag=1; else if (2==flag) flag=0; else { flag=3; printf( "\n输入数字错误!\n" ); } } } return 0;}int josep( int n , int m ){ int i,j,winner; int *num = ( int * )malloc( n * sizeof(int) );//创建玩家数组 if ( num == NULL ) printf( "内存分配错误,请重启程序" ); for ( i=0 ; i<n ; i++)//初始化玩家数组,分别编号。 { num[i]=i+1; } printf( "\n玩家编号完成"); i=0; while ( n > 1 ) { i=( i + m - 1 ) % n;//核心算法,计算出局人。 printf( "\n玩家%d被淘汰出局",num[i] ); delay(); for ( j=i+1;j<n;j++)//移动座位 num[j-1]=num[j]; n--;//人数减一 if (i==n) i=0; } winner=num[0]; free (num); return winner; }/**延时函数**/int delay(){ int i,j; for (i=0;i<5000;i++) for(j=0;j<5000;j++); return 0;}
控制台界面如下
阅读全文
1 0
- Josephus问题的一个C语言程序
- C语言——著名的Josephus问题练习
- Josephus问题(最后一个退出的人)
- 约瑟夫环问题(Josephus)的C解法
- Josephus问题--java程序
- 用c语言实现数据结构中经典程序:Josephus-链表
- [置顶]终于完成了Josephus的C语言实现啦~~
- josephus问题的解法
- Josephus问题的解决方案
- Josephus环的问题
- josephus问题的实现
- 一个c语言的问题
- 一个C语言的问题
- c语言的一个问题
- 一个c语言程序
- 分析一个好玩的c语言程序
- 一个出错的C语言程序
- 一个简单的C语言程序
- 百度地图计算距离
- 点击Android按钮跳转到React-native指定界面
- PB关于字符串按照一定输入格式、规则检测(正则表达式)
- python爬虫step1:selenium
- Docker Ubuntu TLS handshake failed
- Josephus问题的一个C语言程序
- Uri详解之——Uri结构与代码提取
- UITabbar的几种使用
- sql查询
- jmeter个人学习之路--jmeter常用函数整理
- phantomjs实现html生成pdf
- [SQL]无法绑定由多个部分组成的标识符
- B2C商城APP开发方案及流程
- web.xml is missing and <failOnMissingWebXml> is set to true