1、题目描述
【JZ47】求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
知识点:逻辑运算符
难度:☆
2、解题思路
2.1 数学公式
2.2 循环求和
直接利用 for 计算从 1 加到 n。
3、解题代码
3.1 数学公式
package pers.klb.jzoffer.medium;
/**
* @program: JzOffer2021
* @description: 求1+2+3+...+n
* @author: Meumax
* @create: 2020-08-12 20:00
**/
public class SumOneToN {
public int Sum_Solution(int n) {
return n * (n + 1) / 2;
}
}
时间复杂度:O(1)
空间复杂度:O(1)
3.2 循环求和
package pers.klb.jzoffer.medium;
/**
* @program: JzOffer2021
* @description: 求1+2+3+...+n
* @author: Meumax
* @create: 2020-08-12 20:00
**/
public class SumOneToN {
public int Sum_Solution(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
时间复杂度:O(N)
空间复杂度:O(1)
4、解题心得
没什么好说的,不知道这种题为什么会在剑指offer里面。