【第08天】给定整数 n,求1 + 2 + 3 + …+ n的和 | 等差数列


【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

学习指引

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​序、专栏前言​
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​一、【例题1】​
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​2、解题思路​
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​3、模板代码​
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​1、方法1​
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​1、方法2​
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​4 、代码解析​
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​二、【例题2】​
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​2、解题思路​
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​3、模板代码​
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​1、方法1​
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​2、方法2​
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​4 、代码解析​
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​三、推荐专栏​
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​四、课后习题​
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

序、专栏前言

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
本专栏开启,目的在于帮助大家更好的掌握学习​ ​Java​​​,特别是一些​ ​Java学习者​​难以在网上找到系统地算法学习资料帮助自身入门算法, 同时对于专栏内的内容有任何疑问都可在文章末尾添加我的微信给你进行一对一的讲解。
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
但最最主要的还是需要独立思考,对于本专栏的所有内容,能够进行完全掌握,自己完完全全将代码写过一遍,对于算法入门肯定是没有问题的。
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
算法的学习肯定不能缺少总结,这里我推荐大家可以到​​​​将学过的知识进行打卡,以此来进行巩固以及复习。
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
学好算法的唯一途径那一定是 题海战略,大量练习的堆积才能练就一身本领。专栏的任何题目我将会从【题目描述】【解题思路】【模板代码】【代码解析】等四板块进行讲解。
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

一、【例题1】

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
给定一个整数 ,请你输出从的值。
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

2、解题思路

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
题目难度:⭐️
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
朴素的想法,肯定是循环把区间的每一个数都加上,这样的复杂度很明显是级别。但很明显该数列是一个公差为的等差数列,如果我们使用高中学过的等差数列前项和公式,首项为,公差为的前项和公式为:
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
在公差为的情况下可以优化为:
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
在更为特殊的公差和首项都为的情况下:
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

3、模板代码

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

1、方法1

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
![【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230524/31024052_62950fb47b5f829555.gif)
import java.util.Scanner;public class Main{    public static void main(String[] args) {        Scanner sc=new Scanner(System.in);        int n=sc.nextInt();        int res=0;        for (int i = 1; i n; i++) {            res+=i;        }        System.out.println(res);    }}
![【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230524/31024052_62950fb47b5f829555.gif)

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

1、方法2

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
![【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230524/31024052_62950fb47b5f829555.gif)
import java.util.Scanner;public class Main{    public static void main(String[] args) {        Scanner sc=new Scanner(System.in);        int n=sc.nextInt();        System.out.println(n*(n+1)/2);    }}
![【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230524/31024052_62950fb47b5f829555.gif)

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

4 、代码解析

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* 方法采用朴素的办法进行累加,时间复杂度达到,复杂度过高不太可取。
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* 方法是直接采用等差数列的求和公式直接得到答案,时间复杂度为。
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

二、【例题2】

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
给定多组输入数据,每次给定一个整数 ,请你输出从的值。
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

2、解题思路

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
题目难度:⭐️
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
咋一看,貌似和上题没什么区别。但 的数据范围大了很多,而一道题目是否难,数据范围是一个非常重要的参考因素。在我们的等差数列求和公式中,我们先进行了的操作,在足够大的情况下,是有可能爆​​ ​int​​,造成整数溢出变成负数,所以我们需要做出一些调整。
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

3、模板代码

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

1、方法1

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
![【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230524/31024052_62950fb47b5f829555.gif)
import java.util.Scanner;public class Main{    public static void main(String[] args) {        Scanner sc=new Scanner(System.in);        while (sc.hasNext()){            long n=sc.nextLong();            System.out.println(n*(n+1)/2);        }    }}
![【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230524/31024052_62950fb47b5f829555.gif)

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

2、方法2

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
![【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230524/31024052_62950fb47b5f829555.gif)
import java.util.Scanner;public class test222 {    public static void main(String[] args) {        Scanner sc=new Scanner(System.in);        while (sc.hasNext()){            int n=sc.nextInt();            if (n%2==0) System.out.println(n/2*(n+1));            else System.out.println((n+1)/2*n);        }    }}
![【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列](https://johngo-pic.oss-cn-beijing.aliyuncs.com/articles/20230524/31024052_62950fb47b5f829555.gif)

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

4 、代码解析

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* 方法中,由于可能爆​​ ​int​​​,我们可以把​ ​n​​​转换成​ ​long​​​来使用,这样使用等差数列的过程中就不怕了,​ ​long​​的取值范围足够我们使用。
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* 再考虑方法2,在我们等差数列的求和公式中,有一个除​​ ​2​​​的步骤,如果我们能先执行该步骤,就能将或者其中的一个值降下来,就不会超出​​ ​int​​取值范围。
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* 所以我们应该对此进行分类,当​​ ​n​​​为奇数时:
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* 当​ ​n​​为偶数时:
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* 因为​​ ​n​​​和​ ​n+1​​​的奇偶性不同,相乘一定为偶数。当如果需要先进行除以​ ​2​​​的操作,必须得使用偶数去除。当​ ​n​​​为偶数则使用​ ​n​​​,当​ ​n​​​为奇数说明​ ​n+1​​​是偶数则使用​ ​n+1​​。
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
* ​​ ​long​​​类型是​ ​Java​​​的一个基本数据类型,比​ ​int​​​的储存范围要大一个量级。达到了
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列
【第08天】给定整数 n,求1 + 2 + 3 + ...+ n的和 | 等差数列

Original: https://blog.51cto.com/u_15492302/5346185
Author: Java执梗
Title: 【第08天】给定整数 n,求1 + 2 + 3 + …+ n的和 | 等差数列

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/517652/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球