(每日一练28793)题目名称:等差数列

文盲老顾
WEB应用领新星创作者
博客专家认证
2023-04-21 08:55:26

一个等差数列是一个能表示成a, a+b, a+2b,..., a+nb (n=0,1,2,3,...)的数列。在这个问题中a是一个非负的整数,b是正整数。 现给出三个整数,分别表示等差数列的第一项a、最后一项和公差b,求该数列的和。

输入三个整数,之间用空格隔开。第1个数作为首项,第2个数作为末项,第3个数作为公差.

输出占一行,包含一个整数,为该等差数列的和。如果所给三个整数,不能构成等差数列,则返回-1。

这个题目的主要问题就在于输出限制上,不能构成等差数列输出-1,其他的没啥说到,直接求和即可。

# python 版本
a,b,c = map(int,input().split())
print(-1 if (b - a) % c != 0 else sum(range(a,b + 1,c)))
// Javascript 版本
var arr = readline().split(' ').map(x => parseInt(x));
print((arr[1] - arr[0]) % arr[2] == 0 ? eval(Array.from(new Array((arr[1] - arr[0]) / arr[2] + 1)).map((x,y) => y * arr[2] + arr[0]).join('+')) : -1);

python 提供了 range ,可以很方便的生成数据,js 也不差,es6 新特性,可以用 new Array() 生成一个特定长度数组,然后用 Array.from 来构建实际数组,如果不构建,可能会出现一些异常,构建完成后,用 map 给数组的元素填值,最后,给数组插入加号,然后eval 一下就可以求和了。

...全文
181 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

321

社区成员

发帖
与我相关
我的任务
社区描述
主要用于技术交流,包括但不限于 .net,mssql,js,css,python,算法,运维。也可以晒最新技术,美图,运动等。最后,如果有问题,可以提问,老顾能帮忙的会尽量帮忙哦。
前端sqlserverasp.net 技术论坛(原bbs) 北京·西城区
社区管理员
  • 文盲老顾
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧