321
社区成员




一个等差数列是一个能表示成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 一下就可以求和了。