(每日一练28793)题目名称:等差数列
一个等差数列是一个能表示成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 一下就可以求和了。
相关推荐
highloadcup17_solutions:highloadcup.ru 2017解决方案列表
Highloadcup 2017解决方案 ,,2017年, , 一个地方 关联 语 美好的 名称 13 从 121.81437 马克西姆·安德烈耶夫(Maxim Andreev) 7、1 C ++ 127.10408 尼基塔·乌瓦洛夫(Nikita Uvarov) 6 去 134.54521 亚历山大·舒金(Alexander Shchukin) 9、5 C ++ 136.28793 阿列克谢·迪奇科夫斯基(Alexey Dichkovsky) 10、13 C ++ 136.47385 叶夫根尼·西多连科(Evgeny Sidorenko) 13、4 C ++ 137.02302 伊万·泰亚金(Ivan Tyamgin) 12、17 Java 140.54994 米哈伊尔·鲍勃鲁茨科夫(Mikhail Bobrutskov) 15、11
mongodb-org-server_8.0.13_arm64.deb
mongodb-org-server_8.0.13_arm64
emqx-5.8.9-ubuntu20.04-arm64.deb
emqx-5.8.9-ubuntu20.04-arm64
binutils-2.17.90.tar.bz2
binutils-2.17.90.tar.bz2
多平台硬盘smart数据读取软件
多平台硬盘smart数据读取软件


