约瑟夫环问题算法

      这是我用集合类ArrayList写的约瑟夫环问题的算法。

界面:

《约瑟夫环问题算法》

 

代码:

C# Code:

 

《约瑟夫环问题算法》
《约瑟夫环问题算法》
Code

《约瑟夫环问题算法》using System;
《约瑟夫环问题算法》
using System.Collections.Generic;
《约瑟夫环问题算法》
using System.Linq;
《约瑟夫环问题算法》
using System.Text;
《约瑟夫环问题算法》
using System.Windows;
《约瑟夫环问题算法》
using System.Windows.Controls;
《约瑟夫环问题算法》
using System.Windows.Data;
《约瑟夫环问题算法》
using System.Windows.Documents;
《约瑟夫环问题算法》
using System.Windows.Input;
《约瑟夫环问题算法》
using System.Windows.Media;
《约瑟夫环问题算法》
using System.Windows.Media.Imaging;
《约瑟夫环问题算法》
using System.Windows.Navigation;
《约瑟夫环问题算法》
using System.Windows.Shapes;
《约瑟夫环问题算法》
using System.Collections;
《约瑟夫环问题算法》
《约瑟夫环问题算法》

 

 

《约瑟夫环问题算法》
《约瑟夫环问题算法》
Code

《约瑟夫环问题算法》namespace Test1
《约瑟夫环问题算法》《约瑟夫环问题算法》
《约瑟夫环问题算法》{
《约瑟夫环问题算法》《约瑟夫环问题算法》    
/**//// <summary>
《约瑟夫环问题算法》    
/// Interaction logic for Window1.xaml
《约瑟夫环问题算法》    
/// </summary>

《约瑟夫环问题算法》    public partial class Window1 : Window
《约瑟夫环问题算法》《约瑟夫环问题算法》    
《约瑟夫环问题算法》{
《约瑟夫环问题算法》        
public Window1()
《约瑟夫环问题算法》《约瑟夫环问题算法》        
《约瑟夫环问题算法》{
《约瑟夫环问题算法》            InitializeComponent();
《约瑟夫环问题算法》        }
 
《约瑟夫环问题算法》       
《约瑟夫环问题算法》            
《约瑟夫环问题算法》        
public void outPerson(int totPerson, int spaPerson,int startIndex)                   //这个方法是算法主体
《约瑟夫环问题算法》《约瑟夫环问题算法》
            《约瑟夫环问题算法》{
《约瑟夫环问题算法》            
《约瑟夫环问题算法》                ArrayList totaPerson 
= new ArrayList();
《约瑟夫环问题算法》                
《约瑟夫环问题算法》
《约瑟夫环问题算法》                
for (int i = 0; i < totPerson; i++)
《约瑟夫环问题算法》《约瑟夫环问题算法》                
《约瑟夫环问题算法》{
《约瑟夫环问题算法》                    totaPerson.Add(i
+1);
《约瑟夫环问题算法》                }

《约瑟夫环问题算法》                startIndex 
-= 1;
《约瑟夫环问题算法》                
《约瑟夫环问题算法》                
do
《约瑟夫环问题算法》《约瑟夫环问题算法》                
《约瑟夫环问题算法》{
《约瑟夫环问题算法》                    
int temp1=0,temp2 = 0;                        
《约瑟夫环问题算法》                    
if ((startIndex + spaPerson  1< totaPerson.Count  1)
《约瑟夫环问题算法》                        
《约瑟夫环问题算法》《约瑟夫环问题算法》                    
《约瑟夫环问题算法》{
《约瑟夫环问题算法》                            temp1 
= startIndex + spaPerson  1;
《约瑟夫环问题算法》                            sacrificerList.Text 
+=  + totaPerson[temp1].ToString() + 个勇士走出队列 + \r\n;
《约瑟夫环问题算法》                            totaPerson.RemoveAt(temp1);
《约瑟夫环问题算法》                            startIndex 
+= spaPerson  1;                       
《约瑟夫环问题算法》                    }

《约瑟夫环问题算法》
《约瑟夫环问题算法》                        
《约瑟夫环问题算法》                    
if ((startIndex + spaPerson  1>=totaPerson.Count  1)
《约瑟夫环问题算法》                        
《约瑟夫环问题算法》《约瑟夫环问题算法》                    
《约瑟夫环问题算法》{                    
《约瑟夫环问题算法》                        temp2 
= (startIndex + spaPerson  1% totaPerson.Count;                        
《约瑟夫环问题算法》                        sacrificerList.Text 
+=  + totaPerson[temp2].ToString() + 个勇士走出队列 + \r\n;                        
《约瑟夫环问题算法》                        totaPerson.RemoveAt(temp2);                        
《约瑟夫环问题算法》                        startIndex 
= temp2;                        
《约瑟夫环问题算法》                    }

《约瑟夫环问题算法》                    
《约瑟夫环问题算法》                }
               
《约瑟夫环问题算法》                
while (totaPerson.Count>=spaPerson);
《约瑟夫环问题算法》
《约瑟夫环问题算法》                sacrificerList.Text 
+= ******************************+\r\n;
《约瑟夫环问题算法》
《约瑟夫环问题算法》                
foreach (int i in totaPerson)
《约瑟夫环问题算法》《约瑟夫环问题算法》                
《约瑟夫环问题算法》{
《约瑟夫环问题算法》                    sacrificerList.Text 
+=  + i + 个战士留下来了+\r\n;
《约瑟夫环问题算法》                }

《约瑟夫环问题算法》
《约瑟夫环问题算法》            }
    
《约瑟夫环问题算法》
《约瑟夫环问题算法》        
private void GameStart_Click(object sender, RoutedEventArgs e)
《约瑟夫环问题算法》《约瑟夫环问题算法》        
《约瑟夫环问题算法》{
《约瑟夫环问题算法》            sacrificerList.Text 
= “”;
《约瑟夫环问题算法》            
try
《约瑟夫环问题算法》《约瑟夫环问题算法》            
《约瑟夫环问题算法》{
《约瑟夫环问题算法》                
int allPerson = int.Parse(totalNumber.Text);
《约瑟夫环问题算法》                
int spaceNo = int.Parse(spaceNumber.Text);
《约瑟夫环问题算法》                
int startLoc = int.Parse(startLoca.Text);
《约瑟夫环问题算法》
《约瑟夫环问题算法》                
if (spaceNo > allPerson)
《约瑟夫环问题算法》《约瑟夫环问题算法》                
《约瑟夫环问题算法》{
《约瑟夫环问题算法》                    sacrificerList.Text 
+= 请输入正确的数值,注意步长要小于人数!;
《约瑟夫环问题算法》                }

《约瑟夫环问题算法》                
else if (spaceNo <= allPerson)
《约瑟夫环问题算法》《约瑟夫环问题算法》                
《约瑟夫环问题算法》{
《约瑟夫环问题算法》                    outPerson(allPerson, spaceNo, startLoc);
《约瑟夫环问题算法》                }

《约瑟夫环问题算法》                
《约瑟夫环问题算法》            }

《约瑟夫环问题算法》            
《约瑟夫环问题算法》            
catch (FormatException fEx)
《约瑟夫环问题算法》《约瑟夫环问题算法》            
《约瑟夫环问题算法》{
《约瑟夫环问题算法》                sacrificerList.Text 
+= fEx.Message;
《约瑟夫环问题算法》
《约瑟夫环问题算法》            }

《约瑟夫环问题算法》            
catch (InvalidCastException iCe)
《约瑟夫环问题算法》《约瑟夫环问题算法》            
《约瑟夫环问题算法》{
《约瑟夫环问题算法》                sacrificerList.Text 
+= iCe.Message;
《约瑟夫环问题算法》            }

《约瑟夫环问题算法》            
catch (OverflowException oFe)
《约瑟夫环问题算法》《约瑟夫环问题算法》            
《约瑟夫环问题算法》{
《约瑟夫环问题算法》                sacrificerList.Text 
+= oFe.Message;
《约瑟夫环问题算法》            }

《约瑟夫环问题算法》           
《约瑟夫环问题算法》            
《约瑟夫环问题算法》        }

《约瑟夫环问题算法》
《约瑟夫环问题算法》        
private void Quit_Click(object sender, RoutedEventArgs e)
《约瑟夫环问题算法》《约瑟夫环问题算法》        
《约瑟夫环问题算法》{
《约瑟夫环问题算法》            
this.Close();
《约瑟夫环问题算法》        }

《约瑟夫环问题算法》
《约瑟夫环问题算法》    }

《约瑟夫环问题算法》}

《约瑟夫环问题算法》
《约瑟夫环问题算法》

 

 

 

 

    原文作者:TimGong
    原文地址: https://www.cnblogs.com/gb2013/archive/2009/05/09/1453318.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞