商仆过河问题代码(C#版)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//代码名称:商仆过河问题

//使用语言:C#

//编译环境:Windows10 、Visual Stdio 2013

//测试环境:Window7、Windows8、Windows10测试均通过

//目录

//变量声明

//主函数

//调用的函数

// 01画头函数

// 02起始值start输入

// 03迭代的算法

// 04输出每种正确方法的数组

// 05输出计算过程信息

// 06检查状态变量是否合法方法

// 07判断状态向量是否重复

// 08产生合法运载向量的合法

//************************************************程序开始************************************************

using System;

using System.Collections;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.T asks;

namespace ConsoleApplication5

{

class Program

{

#region 所有的静态变量

static int Boat_Capacity; //船载人数静态变量

static int Person_Capacity; //商人和仆人的人数上限

static Status[] YZ; //运载向量集合

static Int64 MethodNum = 0; //统计产生方法所用的步骤数

static Int64 MethodNumSum = 0; //统计产生的方法个数

static Int64 CalculatorNum = 0; //统计计算次数

static Int64 Step = 50; //初始开始步骤值

static ArrayList MinArray=new ArrayList(); //记录最小步骤方法的数据数组

struct Status //定义商仆结构体

{

public int _Trader; //商人数

public int _Servant; //仆人数

}

#endregion

//************************************************主函数************************************************ static void Main(string[] args)

{

Head(); //画头

Start(); //初始值导入

Status zt; zt._Trader = Person_Capacity; zt._Servant = Person_Capacity; //初始化商人和仆人数

ArrayList ztArr = new ArrayList(); //初始化运载状态数组

ztArr.Add(zt);

System.Diagnostics.Stopwatch timer = new System.Diagnostics.Stopwatch();

//时间对象

timer.Start(); //计时开始

Recursion_Filter(zt, ztArr, 0, true); //迭代开始

timer.Stop(); //计时结束

Console.WriteLine("----------------------------------------------------------------");

Console.Write("计算完毕!");

Console.WriteLine("程序耗时: {0}", timer.Elapsed);

Console.WriteLine("计算时间由您计算机性能决定,您用时多少呢?O(∩_∩)O");

Console.WriteLine("----------------------------------------------------------------");

Console.Write("输入[exit]退出程序:");

string exitStr="";

do

{

exitStr=Console.ReadLine();

}

while (exitStr != "exit");

} //end main 主函数结束

//************************************************调用的函数************************************************

#region 01画头函数

static void Head()

{

Console.WriteLine("=========================");

Console.WriteLine("=欢迎使用过河问题计算程序!=");

Console.WriteLine("=========================");

}

#endregion

#region 02起始值start输入

static void Start()

{

Console.Write("请输入商人/仆人的人数上限:");

Person_Capacity = Convert.ToInt32(Console.ReadLine());

相关文档
最新文档