测试一下你解决问题的逻辑思维及算法能力
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
有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
相关文章推荐
- 测试一下你解决问题的逻辑思维及算法能力
- TLD(已测试)--VS2010下TLD算法源码调试详解,解决卡机问题
- [问题大概解决了,应该就是单键模式使用不当产生的。明天找人来做一下压力测试]又一次斗胆发到了首页。期盼帮我检查下objDB类是否有问题
- 小测试---测试一下你的逻辑思维能力!!!拿0分不容易哦!!!
- Dijkstra算法,Bellman-Ford算法和BFS算法解决有向图的单源最短路径问题
- 【算法导论学习-31】分治法解决同一个数连乘问题
- 最近一阵子写C#的项目,遇到的一些问题以及解决的办法,跟大家分享一下```
- Flash CS3无法导出测试影片问题解决
- “循环赛日程安排”问题的分而治之解决算法
- [置顶] 通过心理学知识提高问题定位与解决能力(上)
- “马的遍历”问题的贪婪法解决算法
- oadrunner做性能测试 问题及解决方法
- Android 测试 Intel HAXM 超快模拟器时出现的问题解决
- 匈牙利算法---解决最大匹配问题
- LoadRunner测试中自动关联出现问题的解决方法
- Jonhson算法解决简单的flowshop 2问题
- 《像外行一样思考,像专家一样实践》3_问题的解决能力与教育
- 使用jmeter测试web应用遇到的几个问题及解决