zoukankan      html  css  js  c++  java
  • 剑指offer46 求1+2+...+n 以及& &&区别

    参考代码:

    class Solution {
    public:
        int Sum_Solution(int n) {
            int result = n;
            result && (result += Sum_Solution(n-1));
            return result;
        }
    };

    &:位与运算符

    &&:逻辑运算符

    &返回的是二进制位与运算后的二进制值,&&返回的是true或者false。对于&&,还有一个短路求值原则,即先计算&&前的值,再计算&&后的值。若&&前面为false,在&&后的方程式就不用计算了。

    这个代码中,result && (result += Sum_Solution(n-1))不是将前后两个进行位与运算,而是进行逻辑与运算,只是最后返回的true、false没有利用。若&&前的result为真,就可以计算后面的值,并对result值进行了

    相应的更新。当result递归到0时,就停止了递归,相当于递归的结束条件。

  • 相关阅读:
    xp 安装 win7 64
    局域网内传输文件速度慢
    安全和共享设置
    vs2005无法启动
    dos快速通道
    xp 共享 guest
    Java菜题
    Java序列化总结(最全)
    Bitset改进你的程序质量
    Java反射方法总结
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/7240755.html
Copyright © 2011-2022 走看看