题目要求
计算1+2+3+4……n的值,要求不能使用所有的判断包括三目操作符和迭代(循环)
这个题目可谓杀伤力极大。对于一个初阶C noob,丝毫不亚于关门打狗。
但是稍加思索以后,指针就是我打开门的钥匙。
分析
- 不能使用循环和判断
简短有力的一句话已经灭了99%的可能性,倘若可以使用循环,那这个题目的解法数不胜数,在把for while等等语句关在门外后,我们似乎还可以使用递归的方法来解决这道难题,但是!递归的两个关键条件是什么?
- 每次递归调用后越来越接近这个条件
- 存在限制条件,当满足这个限制条件的时候,递归便不再继续。
对于第一个条件十分简单,只需要每次n+f(n-1)就可以轻松应对,但是最重要的是第二个限制条件也就是n=0的时候停止循环。那就不得不加上判断条件,然而题目把最后的救星三目操作符
也拒之门外,面对就要关门胖揍的命运,我们如何反抗?