【发布时间】:2011-06-01 21:41:37
【问题描述】:
任务:打印从 1 到 1000 的数字,而不使用任何循环或条件语句。不要只写 1000 次 printf() 或 cout 语句。
你会如何使用 C 或 C++ 来做到这一点?
【问题讨论】:
-
显而易见的答案是使用 500 次调用
printf并每次打印两个数字,不是吗? -
printf("从 1 到 1000 的数字");
-
:?不是条件语句(它是一个表达式)... -
面试是你大放异彩的机会。告诉他们“没有循环或条件?这简直是天方夜谭。我不用电脑也能做到!”然后拿出笔和记事本。他们可能会让你一头雾水,但只是解释说,如果你不能指望内置的语言结构,你真的不能假设任何事情。
-
就我个人而言,我认为有几个答案有聪明、有趣的解决方案。我还认为,虽然这很容易成为一个糟糕的面试问题,但它可能有很好的价值,只要面试官真的不是在寻找一个完全格式良好的解决方案,而是在寻找受访者是否考虑了表明了解 TMP 或以不寻常的方式使用结构。我认为如果将其用作纯粹的“正确/错误”问题会很糟糕,但如果将其用作讨论的起点,我会看到很多价值。