あなたの仕事は、入力を分析し、それが算術シーケンスである場合、n番目の項の数式を出力することです。
入力
入力(STDINから)は、区切り文字(スペース、コンマ、またはセミコロン[いずれかあなたの好み])。入力例を次に示します。
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」(「Not An Arithmetic Progression」の略)を出力する必要があります。
それは場合で等差数列、プログラムはSTDOUTにシーケンスの簡略n番目の用語を印刷しなければなりません。
例:
> 1,3,5,7,9
2n-1
説明:これは、一般的な違い($ 3-1 = 2 $)があるためAPです。次に、式$ 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
これはコードゴルフなので、バイト単位の最短コードが勝ちです!(悪いmath-jaxでごめんなさい)
どんな提案でも大歓迎です!
0,0,0,0
と3,1,-1,-3,-5
等差数列?もしそうなら、彼らは私がしようとしていた方法を破ったので、彼らは良いテストケースになると思います。