您的任务是分析输入和输出第n个项(如果它是算术序列)的公式,否则应打印“ NAAP”。
输入值
输入(来自STDIN)将由几个数字组成,介于4到10个数字之间,其中每个数字的范围在-1000到1000之间(包括-),并以定界符(空格,逗号或分号[您的偏好])。这是一些示例输入。
12,14,16,18 //valid
-3 4 5 1 -2 -4 //valid
45;35;-35 //invalid (only three numbers are present instead of the minimum of 4 numbers)
2,32;21,321 //invalid (it uses two different delimiters: `,` and `;`)
输出量
程序应首先检查输入是否为算术级数。
简而言之,算术级数(AP):每个AP都有一个共同的区别。这是$ n $和$ {n-1} $项之间的差(基本上$ a(n + 1)a
-a (n)$,其中是序列的函数)。对于AP中$ n $的任何值,此差异均保持不变。如果没有共同的差异,则它不是算术序列。要计算第n个项的值,请使用以下公式$ a(n)= a(1)+(n-1)d $其中$ a(1)$是第一项,$ d $是公共项区别。
如果不是算术级数,则程序应打印错误消息“ NAAP”(“不是算术级数”的缩写)。
如果是算术级数,则程序应将序列的简化的第n个项打印到STDOUT。
例:
> 1,3,5,7,9
2n-1
说明:这是一个AP,因为存在一个共同的区别($ 3-1-2 $)。然后使用公式$ a(n)= a(1)+(n-1)d $
因此输出为2n-1
(注意没有空格)
默认情况下,不允许出现标准漏洞。
如果需要,可以创建一个函数(以数字数组作为参数)。如果不是,那么您必须创建一个完整的程序,该程序将输入作为字符串或数组并相应地输出。
测试用例:
1。
1,3,5,7,9
2n-1
2。
1 3 12312 7 9
NAAP
3。
-6;8;22;36;50
14n-20
4。
5,1,-3,-7,-11,-15
-4n+9
5,
-5,-7,-9,-11,-13,-15
-2n-3
6。
3,3,3,3,3,3,3,3,3
0n+3
7
-4,-5,-6,-7
-1n-3
这是代码高尔夫球,因此以字节为单位的最短代码胜出!(对不起,数学jax)
欢迎任何建议!
0,0,0,0
和3,1,-1,-3,-5
算术级数?如果是这样,我认为它们将是很好的测试用例,因为它们破坏了我正在尝试的方法。