zoukankan      html  css  js  c++  java
  • JZ47 求1+2+3+...+n

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

    思路:计算1+2+3+...+n, 可以认为是一个递归的过程, 这点很容易理解。但是怎么不用分支判断来保证递归的终止呢。通过短路运算0&&cout使条件为假值,从而不执行输出语句,那么我们也可以通过短路来实现循环终止,从n开始递减进程递归的相加运算当递归至0时使递归短路即可。

    func Sum_Solution(n int) int {
        ans := 0
        var sum func(int) bool
        sum = func(n int) bool {
            ans += n
            return n > 0 && sum(n-1)
        }
        sum(n)
        return ans
    }
  • 相关阅读:
    线程
    网络编程
    正则表达式
    XML
    java----八种排序算法
    Java 关键字 速查表
    Day_19多线程(下)
    Day18_进程(中)
    Day17_进程(上)
    Day15_IO流(上)
  • 原文地址:https://www.cnblogs.com/dingxiaoqiang/p/14642018.html
Copyright © 2011-2022 走看看