我在试图找出这个问题背后的逻辑时遇到了很大的困难。我已经开发了一切,但我真的可以使用一些帮助,任何帮助,我坚持的部分。有关逻辑问题的帮助
背景故事:
*一群演员了一圈等待。他们“计数 ”以不同的金额。最后几次试镜 被认为是获得零件并成为明星的最佳机会。
取代具有名字的演员,他们通过数字被标识为 。 “劲舞团订单”表中的讲述, 阅读左到右,该谁 将在他们将执行顺序试镜演员的“名称” *
输出示例:
等,一路攀升至10
我有什么至今:
using System;
using System.Collections;
using System.Text;
namespace The_Last_Survivor
{
class Program
{
static void Main(string[] args)
{
//Declare Variables
int NumOfActors = 0;
System.DateTime dt = System.DateTime.Now;
int interval = 3;
ArrayList Ring = new ArrayList(10);
//Header
Console.Out.WriteLine("Actors\tNumber\tOrder");
//Add Actors
for (int x = 1; x < 11; x++)
{
NumOfActors++;
Ring.Insert((x - 1), new Actor(x));
foreach (Actor i in Ring)
{
Console.Out.WriteLine("{0}\t{1}\t{2}", NumOfActors, i, i.Order(interval, x));
}
Console.Out.WriteLine("\n");
}
Console.In.Read();
}
public class Actor
{
//Variables
protected int Number;
//Constructor
public Actor(int num)
{
Number = num;
}
//Order in circle
public string Order(int inter, int num)
{
//Variable
string result = "";
ArrayList myArray = new ArrayList(num);
//Filling Array
for (int i = 0; i < num; i++)
myArray.Add(i + 1);
//Formula
foreach (int element in myArray)
{
if (element == inter)
{
result += String.Format(" {0}", element);
myArray.RemoveAt(element);
}
}
return result;
}
//String override
public override string ToString()
{
return String.Format("{0}", Number);
}
}
}
}
我被卡住的部分正在得到一些数学会这样做: alt text http://content.screencast.com/users/SidSinister/folders/Jing/media/0d178ed4-64bd-468c-acc3-872fa8d8d541/2010-03-17_2035.png
任何人都可以提供一些指导和/或示例代码?
PROGRESS ONE
新代码
公共字符串订单(INT间,INT NUM) { //可变 字符串结果= “”; int pos = 0; ArrayList myArray = new ArrayList();
//Filling Array
for (int i = 0; i < num + 1; i++)
myArray.Add(i+1);
while (myArray.Count > 1)
{
pos = (pos + inter) % myArray.Count;
result += (myArray[pos] + " ");
myArray.RemoveAt(pos);
}
result += (myArray[0]);
myArray.Clear();
return result;
听起来像功课!我记得在课堂上用不同的措辞来做这个确切的问题。我不记得解决方案,但它不是很难。只要坚持下去! – Cameron 2010-03-18 00:39:25
基本上我只需要了解如何循环一个数组的索引,并从中减去元素。 – Stradigos 2010-03-18 00:39:27
这通常被称为约瑟夫斯问题... – 2010-03-18 03:19:13