转过来一道逻辑问题,挺有意思的
http://community.csdn.net/Expert/topic/5673/5673295.xml?temp=.7943537
主 题: 也搞一个逻辑问题,大家看看谁能很快回答上来
作 者: gameboxer ()
等 级:
信 誉 值: 100
所属社区: .NET技术 非技术区
问题点数: 20
回复次数: 18
发表时间: 2007-7-24 22:48:56
这是我进一个公司时的面试题,当初没打上来(答了,但回答错了),可能由于紧张过度?废话少说,大家看题,看谁可以很快回答出来。
一个100层的高楼,已知从某一层楼开始往下抛一枚棋子,棋子会摔碎。现在给你两枚这样的棋子,不考虑爬楼,下楼拣棋子等过程,用一个好的方案,快速的把恰好能摔碎棋子的楼层找到(答案应该好猜,推理过程就显得比较重要了)。
------解决方案--------------------从下一层一层试,省一枚棋子
棋子金子做的吧?
------解决方案--------------------靠...我还是没能在sql中写个递归了...郁闷...无比.
不过在c#到写了一个.
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
for(int i=0;i <100;i++)
{
if(f(i)> 100&f(i-1) <100)
{
Console.WriteLine(i);
break;
}
}
Console.WriteLine(f(14).ToString());
Console.ReadLine();
}
static int f(int i)
{
if(i <=0) return 0;
else return f(i-1)+i;
}
可以得到开始应该先从14楼开始仍...然后也简单了...在没坏之前每次仍都要比之前的数少1,这样,坏了,再一楼一楼的仍...最多14步...
依稀记得的.以前看过这样的题.