广元建设厅官方网站,室内设计学校专升本,手机版做网站,企业管理咨询包括哪些内容今天在牛客网上刷题#xff0c;遇到了这道题#xff0c;最后我看到一位大佬的代码让我感觉的还差很多#xff01;#xff01;#xff01;
题目 求123…n#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句#xff08;A?B:C遇到了这道题最后我看到一位大佬的代码让我感觉的还差很多
题目 求123…n要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句A?B:C。 对于求前N 项和这种题我们在中学时代就已经很熟悉了公式有很多像这种递增的在数学中套公式就好Sn n xn-1/ 2 就完事了在C中用一个循环就可以解决了 但是这道题目要求的是“不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句A?B:C”这就要不是那么容易了 通常都会使用按位与和递归去写这个程序 思路为
需利用逻辑与的短路特性实现递归终止。当n0时(n0)((sumSum_Solution(n-1))0)只执行前面的判断为false然后直接返回0当n0时执行sumSum_Solution(n-1)实现递归计算Sum_Solution(n)。
class Solution {
public:int Sum_Solution(int n) int ansn;ans (ans n Sum_Solution(n - 1));return ans;}
};但是下面这位仁兄的代码让我感到很新奇几乎很少有人会想到 这个代码充分的将矩阵和前n项和的公式“n(a1an)/2”融合