首页 > 试题广场 >

等差数列

[编程题]等差数列
  • 热度指数:175502 时间限制: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  

while True:
try: #2,5,8,11,14。。。。这个数列如何表示呢
n1=2
N=int(input()) #输入N
n=2+3(N-1) #最大的那一项
sum=(n1+n)
N/2
print(int(sum))
except:
break

发表于 2021-04-14 11:04:16 回复(0)
while True:
    try:
        n = int(input())
        sum = int(n * (3 * n + 1) / 2)
        print(sum)
    except EOFError:
        break

发表于 2021-03-26 17:02:05 回复(0)
while True:
    try:
        num = int(input())
        base = 2 * num
        calcPart = 0
        for i in range(num):
            calcPart += 3*i
        print(base+calcPart)
    except:
        break

发表于 2021-03-03 00:22:39 回复(0)
num = int(input())
result = [2]
temp = 0
if num == 1:
    print(2)
elif num > 1:
    for i in range(1, num):
        temp = 3 * i + 2
        result.append(temp)
        temp = 0
    print(sum(result))
分享一下

发表于 2021-02-27 11:01:23 回复(0)
# # 2020年11月15日10:30:51
# while True:
#     try:
#         data = []
#         for i in range(10):
#             data.append(str(i))
#         string = input()
#         length = len(string)
#         correct = 0
# #       验证第一个字符是否为"0"
#         if string[0]=="0":
#             print(-1)
#         else:
# #           验证每一个字符是否为数字
#             for i in range(len(string)):
#                 if string[i] in data:
# #                   已经验证到字符串末端
#                     if i == len(string)-1:
#                         correct = 1
#                 else:
#                     print(-1)
#                     break
#         if correct==1:
#             S = 0
# #           求等差数列前n项和
#             for j in range(int(string)):
#                 S +=  2+3*j
#             print(S)
#     except:
#         break
        
    
# 上面过于复杂,是作为一个通用化的程序存在
# 因为对于int(str),只有str为整数才能转换,其他字符会转换失败
# 同时题目明确了输入就是一个大于0的正整数,不存在不合法的字符,不用验证
# 等差数列求和公式:S = a1*N + N*(N-1)/2 * d (a1为首项,N为项数,d为公差)
while True:
    try:
        a1, d = 2, 3
        N = int(input())
        S = int(a1*N + N*(N-1)/2*d)
        print(S)
    except:
        break
        


编辑于 2020-11-15 11:37:03 回复(0)
# 利用等差数列求和公式版本
while True:
    try:
        N = int(input())
        print((3*N+1)*N//2) #等差数列求和公式,原理和1到100相加类似,只是等差值不是1,这里是3; 即( 首项2+末项(n-1)*3+2 )* 项数//2
    except EOFError:    
        break
# 先获得等差数列的生成器,再迭代求和版本。不知道为什么用不了reduce,只能迭代计算了
while True:
    try:
        N = int(input())
        init = 0
        initList = (2+i*3 for i in range(N))
        for n in initList:
            init += n
        print(init)
    except EOFError:
        break

编辑于 2020-10-03 16:32:59 回复(0)
import re
while True:
    try:
        n = input().strip()
        # 按照题目意思是要判断非法输入的
        if re.match(r'^[1-9]|[1-9][0-9]+$', n):
            n = int(n)
            print((3 * n + 1) * n // 2)
        else:
            print(-1)
    except:
        break
        

发表于 2020-10-02 17:21:23 回复(0)
def f(x):
    if x==1:
        return 2
    return 3*x-1+f(x-1)
while True:
    try:
        a = int(input())
        print(f(a))
    except:
        break
发表于 2020-09-12 15:42:40 回复(0)
while True:
    try:
        N = input()
        if N.isdigit() and int(N) >0:
            n = int(N)
            Sn = int(2*n + 3*n*(n-1)/2)
            print(Sn)
        else: print(-1)
    except:
        break

发表于 2020-08-17 21:23:05 回复(0)
def get_sum(n):
    ll = [i for i in range(2,2+3*n,3)]
    print(sum(ll[:n]))
    
    
while True:
    try:
        get_sum(int(input()))
    except:
        break

发表于 2020-07-23 18:29:23 回复(0)
while True:
    try:
        n = int(input())
        if n == 1:
            print(2)
        else:
            print(int((2 + 2+3*(n-1))/2*n))
    except:
        break
发表于 2020-07-18 17:57:30 回复(0)

while True:
try:
t = int(input())
lis = [ ]

    for i in range(t):
        lis.append(int(3*i+2))

    print(sum(lis[0:t]))
except:
    break
发表于 2020-07-04 14:41:25 回复(0)
while True:
    try:
        total=0
        lap=3
        times=int(input())
        for i in range(0,times):
            total+=2+lap*i
        print(total)
    except:
        break
发表于 2020-06-24 18:52:17 回复(0)
while True:
    try:
        num = int(input())
        An = 2 + 3*(num - 1)
        li = [i for i in range(2, An+1, 3)]
        print(sum(li[:num]))
    except:
        break

发表于 2020-04-20 20:34:11 回复(0)
while True:
    try:
        a = int(input())
        print( a * (3 * a + 1 ) / 2)
    except:break 
发表于 2020-03-15 23:05:54 回复(1)
while True:
    try:
        a1,d,n = 2,3,int(input())
        print(n*a1+(n-1)*n*d//2)
    except:
        break


编辑于 2020-03-03 23:37:46 回复(0)
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)
while True:
    try:
        n = int(input())
        num = 0
        for i in range(0, n):
            num+=2+3*i
        print(num)
    except:
        break

发表于 2019-10-20 17:48:53 回复(0)
while True:
    try:
        a = int(input())
        print(2*a+3*a*(a-1)//2)
    except:
        break
发表于 2019-09-20 17:29:53 回复(0)

问题信息

难度:
29条回答 28928浏览

热门推荐

通过挑战的用户

查看代码
等差数列