C#约瑟夫问题解决方法

 更新时间:2015年04月21日 15:43:18   作者:ishare  
这篇文章主要介绍了C#约瑟夫问题解决方法,较为详细的分析了约瑟夫问题及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#程序设计有所帮助。

相关文章

  • C# 中的IComparable和IComparer的使用及区别

    C# 中的IComparable和IComparer的使用及区别

    这篇文章主要介绍了C# 中的IComparable和IComparer的使用及区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • C#操作注册表的方法

    C#操作注册表的方法

    这篇文章主要介绍了C#操作注册表的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-01-01
  • webBrowser执行js的方法,并返回值,c#后台取值的实现

    webBrowser执行js的方法,并返回值,c#后台取值的实现

    下面小编就为大家带来一篇webBrowser执行js的方法,并返回值,c#后台取值的实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • c#调整图片分辨率的实现示例

    c#调整图片分辨率的实现示例

    本文主要介绍了c#调整图片分辨率的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-10-10
  • c#多线程之间的排他锁的实现

    c#多线程之间的排他锁的实现

    我们很多时候会碰到这样的问题,使用多线程刷一个表的数据时需要多个线程不能重复提取数据,那么这个时候就需要使用到线程的排他锁了,本文就详细的介绍一下
    2021-08-08
  • c# 圆形识别方案和直线识别方案的参考示例

    c# 圆形识别方案和直线识别方案的参考示例

    这篇文章主要介绍了c# 圆形识别方案和直线识别方案的实现示例,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C#中四种定时器的用法详解

    C#中四种定时器的用法详解

    日常项目开发中,很多时候都需要用到定时器来处理一些问题,那么c#中各种定时器应该怎么用呢?下面来简单介绍下C#中4种定时器的使用方法说明,感兴趣的朋友可以参考下
    2024-04-04
  • C#使用Exchange实现发送邮件

    C#使用Exchange实现发送邮件

    最近项目中需要用到exchange的操作,所以本文就参照msdn弄了一个简单的C#操作类,实现了发送邮件和拉取收件箱的功能,感兴趣的小伙伴可以了解下
    2023-10-10
  • C# 操作符之三元操作符浅析

    C# 操作符之三元操作符浅析

    C# 操作符之三元操作符“?:”是如何使用的呢?C# 操作符之三元操作符“?:”需要注意的是什么呢?那么本文就向你简单介绍C# 操作符之三元操作符“?:”的基本情况。
    2011-02-02
  • C#如何将DataTable导出到Excel解决方案

    C#如何将DataTable导出到Excel解决方案

    由于公司项目中需要将系统内用户操作的所有日志进行转存备份,考虑到以后可能还需要还原,所以最后决定将日志数据备份到Excel中
    2012-11-11

最新评论