返回介绍

lcof / 面试题64. 求1+2+…+n / README

发布于 2024-06-17 01:04:42 字数 2159 浏览 0 评论 0 收藏 0

面试题 64. 求 1+2+…+n

题目描述

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

 

示例 1:

输入: n = 3
输出: 6

示例 2:

输入: n = 9
输出: 45

 

限制:

  • 1 <= n <= 10000

解法

方法一

class Solution:
  def sumNums(self, n: int) -> int:
    return n and (n + self.sumNums(n - 1))
class Solution {
  public int sumNums(int n) {
    int s = n;
    boolean t = n > 0 && (s += sumNums(n - 1)) > 0;
    return s;
  }
}
class Solution {
public:
  int sumNums(int n) {
    n && (n += sumNums(n - 1));
    return n;
  }
};
func sumNums(n int) int {
  s := 0
  var sum func(int) bool
  sum = func(n int) bool {
    s += n
    return n > 0 && sum(n-1)
  }
  sum(n)
  return s
}
var sumNums = function (n: number): number {
  return n && n + sumNums(n - 1);
};
impl Solution {
  pub fn sum_nums(mut n: i32) -> i32 {
    n != 0 &&
      (
        {
          n += Solution::sum_nums(n - 1);
        },
        true,
      ).1;
    n
  }
}
/**
 * @param {number} n
 * @return {number}
 */
var sumNums = function (n) {
  return (n ** 2 + n) >> 1;
};
public class Solution {
  public int result;
  public int SumNums(int n) {
    helper(n);
    return result;
  }

  public bool helper(int n) {
    result += n;
    return n == 0 || helper(n - 1);
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文