累加

定义

定义整数n,如果n小于0,则计算从n到0累加得值,如果n大于0,则计算0到n得累加值

Java递归实现

/**
 * 计算0到n之间累加后得值
 * 
 * @param n
 *            累加停止的位置
 * @return 累加后得值
 */
public int accumulate(int n) {
    if (n == 0) {
        // 当n等于0的时候停止递归
        return 0;
    } else if (n < 0) {
        // 当n小于0时,每次递归值应该递增
        return n + accumulate(n + 1);
    } else {
        // 当n大于0时,每次递归值应该递减
        return n + accumulate(n - 1);
    }
}

Java非递归实现

public int accumulateWithoutTraversal(int n) {
    int result = 0;
    int start = n > 0 ? 0 : n;
    int end = n > 0 ? n : 0;
    for (; start <= end; start++) {
        result = result + start;
    }
    return result;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,269评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,839评论 18 399
  • 天地逼我醒 仙人情景皆造齐 天地星河诉衷肠 原来我在三界外 电闪雷劈只是诺 怪我睡的太香眠 迟迟不愿返仙班 难怪血...
    纵情嬉戏天地间阅读 114评论 0 0
  • 如何选择满足需求的SQL on Hadoop系统 - 文章http://weibo.com/p/100160386...
    葡萄喃喃呓语阅读 1,040评论 0 2
  • 今天在家一天,宝宝的睡眠和我一样,睡到中午12点才起来,下午下雨了,哪都没去,同学叫去吃饭,宝宝听到了,一个下午都...
    一键转发_a805阅读 100评论 0 0