C#约瑟夫问题解决方法
本文实例讲述了C#约瑟夫问题解决方法。分享给大家供大家参考。具体分析如下:
决约瑟夫问题描述如下:
设有n个人围坐一圈,现以某个人开始报数,数到m的人出列,接着从出列的下一个人开始重新报数,数到m的人又出列,如此下去,直到所有人都出列为止.按出列顺序输出.
public class Josephas //从第start人开始计数,以alter为单位循环记数出列,总人数为total public int [ ] Jose(int total, int alter, int start) { int i, j, k = 0; //count数组存储按出列顺序的数据,以当结果返回 int[] count = new int [ total+1]; //s数组存储初始数据 int[] s = new int [ total+1]; //对数组s赋初值,第一个人序号为0,第二人为1,依此下去 for (i = 0; i <total; i++) { s[i] = i; } //按出列次序依次存于数组count中 for (i = total; i >= 2; i--) { start = (start + alter - 1) % i; if (start == 0) start = i; count[k] = s[start]; k++; for (j = start + 1; j <= i; j++) s[j - 1] = s[j]; } count[k]=s[1]; //结果返回 return count; } }
希望本文所述对大家的C#程序设计有所帮助。
相关推荐
-
JavaScript使用指针操作实现约瑟夫问题实例
本文实例讲述了JavaScript使用指针操作实现约瑟夫问题的方法.分享给大家供大家参考.具体分析如下: 实现之前当然要自己来编写一些 JS 数组内部指针的操作函数,就像:reset(), current(), next(), prev(), search(), end() 这些函数,我们都要来自己实现,因为 JS 没有内置这些神奇的操作函数 Array.prototype.pointer = 0;//模拟数组内部指针 //Reset 函数,将数组内部指针归位(指向第一个元素) var rese
-
约瑟夫问题的Python和C++求解方法
么是约瑟夫问题? 约瑟夫问题是一个有趣的数学游戏,游戏规则如下: 1.N个人围成一个圈,编号从1开始,依次到N. 2.编号为M的游戏参与者开始报数,报数从1开始,后面的人报数接龙,直到K为止,报数为K的人将出局. 3.出局者的下一个玩家接着从1开始报数,如此循环,直到剩下一个玩家时游戏结束,这个玩家就是游戏获胜者. 那么问题来了,哪个编号是游戏获胜者呢? 下面通过简单的几行python代码来解决这个问题: #!/usr/bin/env python # Joseph Problem def jo
-
Python 调用VC++的动态链接库(DLL)
1. 首先VC++的DLL的导出函数定义成标准C的导出函数: 复制代码 代码如下: #ifdef LRDLLTEST_EXPORTS #define LRDLLTEST_API __declspec(dllexport) #else #define LRDLLTEST_API __declspec(dllimport) #endif extern "C" LRDLLTEST_API int Sum(int a , int b); extern "C" LRDLLTE
-
C#约瑟夫问题解决方法
本文实例讲述了C#约瑟夫问题解决方法.分享给大家供大家参考.具体分析如下: 决约瑟夫问题描述如下: 设有n个人围坐一圈,现以某个人开始报数,数到m的人出列,接着从出列的下一个人开始重新报数,数到m的人又出列,如此下去,直到所有人都出列为止.按出列顺序输出. public class Josephas //从第start人开始计数,以alter为单位循环记数出列,总人数为total public int [ ] Jose(int total, int alter, int start) { int
-
java 多线程饥饿现象的问题解决方法
java 多线程饥饿现象的问题解决方法 当有线程正在读的时候,不允许写 线程写,但是允许其他的读线程进行读.有写线程正在写的时候,其他的线程不应该读写.为了防止写线程出现饥饿现象,当线程正在读,如果写线程请求写,那么应该禁止再来的读线程进行读. 实现代码如下: File.Java package readerWriter; public class File { private String name; public File(String name) { this.name=name; } }
-
python中requests爬去网页内容出现乱码问题解决方法介绍
最近在学习python爬虫,使用requests的时候遇到了不少的问题,比如说在requests中如何使用cookies进行登录验证,这可以查看这篇文章.这篇博客要解决的问题是如何避免在使用requests的时候出现乱码. import requests res=requests.get("https://www.baidu.com") print res.content 以上就是使用requests进行简单的网页请求数据的方式.但是很容易出现乱码的问题. 我们可以通过在网页上右击查看
-
Ubuntu“无法打开锁文件(Could not get lock)”问题解决方法
用apt-get安装软件时提示: 无法获得锁 /var/lib/dpkg/lock - open(11:资源暂时不可用) 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它? 其实报错已经给了提示了,就是有进程正在占用apt-get命令,So... 命令跑起来,找出这个进程,kill这个进程! ps -aux | grep "apt" sudo kill PID(进程编号) 检查是否还有apt进程: ps -e | grep apt 如果没有提示,则表示apt进程
-
Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法
本文实例讲述了Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法.分享给大家供大家参考,具体如下: 这里主要介绍如何解决ViewPager在ScrollView中滑动经常失效.无法正常滑动问题. 解决方法只需要在接近水平滚动时ScrollView不处理事件而交由其子View(即这里的ViewPager)处理即可,重写ScrollView的onInterceptTouchEvent函数,如下: package cc.newnews.view; import an
-
CloudStack SSVM启动条件源码阅读与问题解决方法
CloudStack SSVM启动条件源码阅读与问题解决方法: 在CloudStack建立zone的时候,经常遇到SSVM不启动,或者根本就没有SSVM的情况,分析CloudStack日志,会发现有"Zone 1 is not ready to launch secondary storage VM yet"打印,意思是zone还未准备好启动SSVM. 通过查询CloudStack源代码,发现启动SSVM前有如下检查: 获取Zone里的template. select
-
javascript跨域方法、原理以及出现问题解决方法(详解)
javascript跨域访问是web开发者经常遇到的问题,什么是跨域,一个域上加载的脚本获取或操作另一个域上的文档属性,下面将列出三种实现javascript跨域方法: 1.基于iframe实现跨域 基于iframe实现的跨域要求两个域具有aa.xx.com,bb.xx.com这种特点,也就是两个页面必须属于一个基础域(例如都是xxx.com,或是xxx.com.cn),使用同一协议(例如都是 http)和同一端口(例如都是80),这样在两个页面中同时添加document.domain,就可以实
-
JavaScript汉诺塔问题解决方法
本文实例讲述了JavaScript汉诺塔问题解决方法.分享给大家供大家参考.具体实现方法如下: <script language="javascript"> var han=function (disc,src,aux,dst){ if(disc>0){ han(disc-1,src,dst,aux); document.writeln("move disc "+disc+" from "+src+" to "
-
.Net获取URL中文参数值的乱码问题解决方法总结
本文总结分析了.Net获取URL中文参数值的乱码问题解决方法.分享给大家供大家参考,具体如下: 解决方法: 1.设置web.config文件 <system.web> <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" /> </system.
-
thinkPHP分组后模板无法加载问题解决方法
本文分析了thinkPHP分组后模板无法加载问题解决方法.分享给大家供大家参考,具体如下: 一个分组简要的目录结构如下图所示: 默认分组配置为Home.当访问localhost/server/时可以正常访问前台,localhost/server/home/Index/index也能正常访问. 但是,localhost/server/admin却不能加载tpl页面,但是能够访问到控制器(localhost/server/admin/Index/index能访问,display不出页面). 解决:
随机推荐
- Mac 安装和卸载 Mysql5.7.11 的方法
- Flex4 DataGrid中如何嵌入RadioButton
- C++类模板与模板类深入详解
- javascript获取URL参数与参数值的示例代码
- ASP.NET中利用WebClient上传图片到远程服务的方法
- 微信公众号支付(一)如何获取用户openId
- Request.RawUrl 属性的应用收
- PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
- Android 中构建快速可靠的 UI 测试
- 让IE6支持min-width和max-width的方法
- 如何制作一个文本文件编辑器?
- CSS的inherit与auto使用分析
- 文件上传插件SWFUpload的使用指南
- Spring boot怎么整合Mybatis
- Symantec Norton Ghost v12.0 Retail ISO 多国语言版 下载
- jQuery 操作下拉列表框实现代码
- Javascript 阻止javascript事件冒泡,获取控件ID值
- Android AutoCompleteTextView连接数据库自动提示的方法(附demo源码下载)
- static关键字的作用详解
- ASP.Net中表单POST到其他页面的方法分享