您的位置:首页 > 其它

测试一下你解决问题的逻辑思维及算法能力

2011-07-21 20:33 537 查看
大家来做这样一道简单题目,测试一下你解决问题的逻辑思维及算法能力。如果你能在三个小时之内能写出实现算法,恭喜你,你有成为大师级别程序员的潜在能 力。如果三天内写出算法,你一直努力就可以成为牛人级程序员。如果三个星期内能写出来,你是一个正常的程序员的思维水平。如果两个月都没有写出来,你智商 不适合做程序员,还是早点放弃吧。可以告诉你,答案是10,我已经写出了参考伪代码,过一些时间,我就贴上来。看天涯里面谁能写出来?请看题目:
  有17个人围成一圈(编号0~16),从第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止,问此人原来的位置是多少号?

来一个简洁一点的,只需要一个循环就够了
List<int> list = new List<int>(){ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };
int count = 1,curIndex = 0;
while (list.Count > 1)
{
if (count++ % 3 == 0)
list.RemoveAt(curIndex);
else
curIndex++;
if (curIndex >= list.Count)
curIndex = 0;
}
Console.WriteLine(list[0].ToString()); /article/6591037.html
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: