首页 > 试题广场 >

等差数列

[编程题]等差数列
  • 热度指数:175478 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
等差数列 2,5,8,11,14。。。。
(从 2 开始的 3 为公差的等差数列)

输出求等差数列前n项和


数据范围:

输入描述:

输入一个正整数n。



输出描述:

输出一个相加后的整数。

示例1

输入

2

输出

7

说明

2+5=7  
示例2

输入

275

输出

113575

说明

2+5+...+821+824=113575  
等差数列求和公式:Sn=a1*n+n*(n-1)*d/2
import java.util.*;
 
public class Main{
    public static void main(String[] args){
 		Scanner in = new Scanner(System.in);
        while(in.hasNext()){
            int n = in.nextInt();
            if(n<1){
                System.out.println(-1);
            }else{
                System.out.println((2*n+3*n*(n-1)/2));
            }
			
        }
        in.close();
    }
}

发表于 2016-04-05 14:21:35 回复(2)
while 1:
    try:
        n = int(input())
        res = 0
        for i in range(n):
            res += int(2 + 3*i)
        print(res)
    except:
        break

发表于 2020-02-01 17:03:41 回复(0)

Java 等差数列求和公式

思路

利用等差数列求和公式:

实现

import java.util.Scanner;

/**
 * @author : cunyu
 * @version : 1.0
 * @className : OneZeroZero
 * @date : 2020/8/8 18:58
 * @description : 100.等差数列
 */

public class OneZeroZero {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int N = 0;
        while (in.hasNext()) {
            N = in.nextInt();
            System.out.println(sumOfArray(N));
        }
    }

    /**
     * @param N 前 N 项
     * @return 前 N 项和
     * @description 等差数列前 N 项和
     * @date 2020/8/8 22:04
     * @author cunyu1943
     * @version 1.0
     */
    public static int sumOfArray(int N) {
        int start = 2;
        int distance = 3;
        // 等差数列求和公式
        return N * start + N * (N - 1) * distance / 2;
    }
}
发表于 2020-08-08 22:11:29 回复(0)
import java.util.Scanner;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextLong())
        {
            int sum = Stream.iterate(2, n -> n + 3).limit(sc.nextLong()).collect(Collectors.summingInt(e -> e));
            System.out.println(sum);
        }
        
        sc.close();
    }

}

发表于 2018-09-08 15:18:19 回复(0)
import java.util.*;
 
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int in=sc.nextInt();
        int count=0;
        for(int i=1;i<=in;i++){
            count=count+3*i-1;
        }
        System.out.println(count);
    }
}
发表于 2022-08-04 20:26:12 回复(0)
# 等差数列求和公式
n = int(input())
sum_ = n*(3*n+1)/2
print(int(sum_))

发表于 2022-07-27 17:53:42 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextInt()) {
            int n = sc.nextInt();
            int count = -1; // 记录当前的值
            int sum = 0; // 记录总和
            for (int i = 0; i < n; i++) {
                count += 3;
                sum += count;
            }
            System.out.println(sum);
        }
    }
}


发表于 2022-04-30 21:00:32 回复(0)
#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    printf("%d\n",n*2+n*(n-1)*3/2);
    return 0;
}

发表于 2022-04-26 17:16:15 回复(0)

首项加尾项的和乘以项数除以二

const n = Number(readline());

const a1 = 2;
const d = 3;
const an = a1 + (n - 1) * d;

console.log(((a1 + an) * n) / 2);
发表于 2022-04-24 19:31:48 回复(0)
利用求和公式一行代码即可

#include<stdio.h>
int main(){
    int n;
    while(~scanf("%d",&n)){
        //等差数列求和公式:n*a1+n*(n-1)/2*d ,a1为首项,d为公差。
        printf("%d\n",n*2+n*(n-1)/2*3);  
    }
}

发表于 2022-04-02 17:35:28 回复(0)
n = int(input())
l =[]
for i in range(n):
    m = 2 * i + 2 + i
    l.append(m)
print(sum(l))

发表于 2022-03-26 20:39:07 回复(0)
#include<stdio.h>
int main()
{
    int n=0;
    while(~scanf("%d",&n))
    {
        int i=0;
        int sum=0;
        int x=2;
        for(i=0;i<n;i++)
        {
            sum+=x;
            x+=3;
        }
        printf("%d\n",sum);
    }
    return 0;
}

发表于 2022-01-16 11:27:23 回复(0)
import java.util.Scanner;
public class Main {
    //sn = a1*n+(n*(n-1)*d)/2
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextInt()){
            int n = sc.nextInt();
            System.out.println(2*n+(n*(n-1)*3)/2);
        }
    }
}

发表于 2021-12-01 16:26:54 回复(0)
#include<iostream>
using namespace std;
int main(){
    int d=3;
    int a1=2;
    int n;
    while(cin>>n){
        cout<<n*a1+n*(n-1)*d/2<<endl;
    }
    return 0;
}
/*
问题描述:等差数列求和,数学问题公式化,S = n*a1+n(n-1)*d/2
*/
发表于 2021-07-09 15:28:10 回复(0)
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
    int x;
    while(cin>>x) {
        cout<<(2*x+3*(x-1)*x/2)<<endl;
    }
    return 0;
}

发表于 2021-06-27 18:44:14 回复(0)
import java.util.*;
/**
 * @author hll[yellowdradra@foxmail.com]
 * @description 等差数列
 * @date 2021-05-13 22:33
 **/
public class Main {
    public static void main(String[] args) {
        int d = 3;
        int a1 = 2;
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            int an = a1 + (n - 1) * d;
            int sn = (n * (a1 + an)) / 2;
            System.out.println(sn);
        }
    }
}


发表于 2021-05-13 22:45:14 回复(2)
import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int n = sc.nextInt();
            int sn = n * 2 + n * (n - 1) * 3 / 2;
            System.out.println(sn);
        }
    }
}

发表于 2021-04-14 00:33:28 回复(0)
通项公式:an=a1+(n-1)*d,其中a1=2d=3
n项和:Sn=(a1+an)*n/2
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String strN;
        while((strN = br.readLine()) != null){
            int n = Integer.parseInt(strN);
            // 等差数列求和公式
            System.out.println((2 + 2 + (n - 1)*3)*n / 2);
        }
    }
}
编辑于 2021-03-23 09:22:51 回复(0)
#include <stdio.h>

int main()
{
    int number;
    int sum = 0;
    int result;
    
    while ((result = (scanf("%d", &number)) != EOF)){
        if(number <= 0 || result == -1){
            return -1;
        }
        sum = ((3 * number + 1) * number) / 2;
        printf("%d\n", sum);
    }
    
    return 0;
}

发表于 2020-07-12 23:49:52 回复(0)
import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n = sc.nextInt();
            int sum = 0;
            for(int i=0;i<n;i++){
                sum+=i*3;
            }
            System.out.println(sum+2*n);
        }
    }
}
发表于 2020-07-10 10:46:38 回复(0)

问题信息

难度:
534条回答 28925浏览

热门推荐

通过挑战的用户

查看代码
等差数列