19得票14回答
代码高尔夫:自动机

我使用这些规则制作了终极笑话生成器。你能用你喜欢的编程语言聪明地实现它吗? 规则: 每次迭代时,会发生以下转换。H -> AH A -> HA AA -> HA HH -> AH AAH -> HA HAA -> AH n = 0 | H ...

19得票15回答
C#潜在面试问题...太难了吗?

不运行此代码,确定将调用哪个Foo方法: class A { public void Foo( int n ) { Console.WriteLine( "A::Foo" ); } } class B : A { /* note that A::Foo ...

19得票6回答
如何高效地解决8数码难题?

八数码难题是一个正方形板,有9个位置,填充了8个编号瓷砖和一个空位。在任何时刻,相邻空位的瓷砖可以移动到空位中,创建一个新的空位位置。换句话说,可以将空位与相邻的(水平和垂直)瓷砖交换。游戏的目标是从任意瓷砖配置开始,将它们移动,使得编号瓷砖按升序排列,要么绕着板子的周长运行,要么从左到右排序...

18得票37回答
编程谜题:不使用减法实现倒数计数

好的,举个例子:一个命令行应用程序需要执行以下操作: Countdown.exe 7 输出 7 6 5 4 3 2 1 不允许使用减法(包括使用减号)或字符串反转。 看来非常简单 :-) 答案概述(至少是原则)如下: 通过加法和递归 通过使用模数 通过推入和弹出(可能是最明显的?)...

18得票16回答
C谜题:printf的输出应始终为“5”

我在一份C语言能力测试试卷中发现了这个谜题。 void change() { //write something in this function so that output of printf in main function //should always give 5...

18得票8回答
i = ++i + ++i; in C++

有人可以解释一下为什么这段代码会输出14吗?另一个学生问我,但我自己想不通。int i = 5; i = ++i + ++i; cout<<i;

18得票4回答
设计一个20个问题算法

我对编写类似于akinator和在较小程度上20q.net所使用的二十个问题算法很感兴趣。后者似乎更专注于对象,明确告诉您不要想到人或地方。可以说,Akinator更通用,允许您考虑任何事物,包括抽象概念,例如“我的兄弟”。 问题在于我不知道这些网站使用什么算法,但从我阅读的内容来看,它们似...

17得票3回答
"用图案填充瓷砖"难题

我在为一个基于瓷砖的游戏编写随机关卡生成器时遇到了一个有趣的问题。我已经实现了一个暴力求解器,但它的速度指数级增长,显然不适合我的用例。我并不一定要寻找完美的解决方案,只要有一个“足够好”的解决方案就可以满足我的要求。 问题陈述: 假设你有以下所有或部分可用的瓷砖(这是将所有可能的4位模式...

17得票5回答
在面板上放置随机的不重叠矩形

我有一个大小为X乘Y的面板。我想在这个面板上放置最多N个随机大小的矩形,但我不希望它们重叠。我需要知道这些矩形的X,Y位置。 有算法可以实现吗? 编辑:所有N个矩形在开始时都已知,并且可以以任何顺序选择。这是否改变了程序?

17得票12回答
桥接难题

四个人在夜间过桥,每次过桥必须由一个或两个人一起走,并且必须带着手电筒。手电筒必须来回传递,不能扔掉等。 四个人的速度不同,分别需要1、2、5和10分钟来过桥。如果两个人一起过桥,他们必须以较慢者的步伐前进。没有什么诡计--所有人都从同一侧开始,手电筒不能照射很远的距离,也不能背着别人等。 ...