首页 > 试题广场 >

等差数列

[编程题]等差数列
  • 热度指数:168926 时间限制: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  
#include<iostream>
using namespace std;
int main()
    {
    int n;
    while(cin>>n)
        {
        int temp = 2,sum=0;
        while(n--)
            {
            sum +=temp;
            temp+=3;
        }
        cout<<sum<<endl;
    }
    return 0;
}


发表于 2017-06-13 17:37:39 回复(0)
#include <iostream>

using namespace std;

int main()
{
    int count;
    while (cin >> count)
    {
        if (count <= 0)
        {
            return -1;
        }
        
        int last = 2 + 3 * (count - 1);
        
        cout << count * (2 + last) / 2 << endl;
    }
    
    return 0;
}
编辑于 2017-08-27 20:13:56 回复(0)
等差数列求和公式: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)
var readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
rl.on('line', function(line){
//思路1:数列求和
function sumWith2(n) {
    return 2*n + n*(n-1)*3/2;
}

//思路2:while循环 
function sumWith2(n) {
    var num = 2, space = 3, count = 1, sum = 0;
    while(count++ <= n){
        sum += num;
        num = num + space
    }
    return sum;
}
    console.log(sumWith2(line));

//思路3:构造数组
function equalDifferenceSeries(len) {
    var i, arr = [], start = 2;
    for(i = 0; i < len; i++){
        arr.push(start);
        start += 3;
    }
    return arr;
}
function sumWith3(n,arr) {
    var i, sum = 0;
    for(i = 0; i < n; i++){
        sum += parseInt(arr[i]);
    }
    return sum;
}


编辑于 2017-03-05 17:24:46 回复(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)
忘记公式就老老实实累加咯
n=int(input())
s,i=0,2
for j in range(n):
    s=s+i
    i+=3
print(s)


发表于 2022-07-03 17:55:04 回复(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)
num = int(input())
nlist = [3*n-1 for n in range(1,num+1)]
print(sum(nlist))

发表于 2022-04-08 12:29:52 回复(1)
利用求和公式一行代码即可

#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)

问题信息

难度:
523条回答 28293浏览

热门推荐

通过挑战的用户

查看代码