求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

    xiaoxiao2021-03-25  49

    思路一:利用逻辑与——&& 的短路特点

               “&&”有个短路特点,前面为假,后面不计算

    int Sum_Solution(int n){ int ans = n; ans && (ans += Sum_Solution(n - 1)); return ans; }

    思路二:利用求和公式——n * (n + 1) / 2

               n * (n + 1) 为数组a[n][n + 1]的和, / 2 可以利用 >> 1实现

    int Sum_Solution(int n) {         bool a[n][n+1];         return sizeof(a)>>1; }

    转载请注明原文地址: https://ju.6miu.com/read-39595.html

    最新回复(0)