有这样一个面试题——请把从1到1000的数打印出来,但你不能使用任何的循环语句或是条件语句。更不能写1000个printf或是cout。用C/C++语言。
我相信,大多数人一开始你可能想到的是递归算法:
当然,题目中说了不能使用条件语句,所以,上面那种解法的不符合题意的,因为还是变向地使用了条件表达式。不过,我们可以用别的方法来让这个递归终止,比如:
除以零,当程序crash,呵呵。
还有这样退出递归的:
还有下面这些各种各样的解法:
不过,print用得多了一些。我们可以用宏嘛。
不过,我们应该使用C++的一些特性,比如:
使用构造函数
或是更为NB的Template:
最后来个BT一点的: