Senin görevin aritmetik bir dizi ise giriş ve çıkış n-terim için formül analiz, aksi takdirde "NAAP" yazdırmaktır.
Giriş
Girdi (STDIN'den), her bir sayının bir sınırlayıcıyla (boşluk veya virgül veya noktalı virgül [hangisi olursa olsun) -1000 ile 1000 dahil olmak üzere 4 ila 10 sayı arasında birkaç sayıdan oluşur. tercihiniz]). Aşağıda bazı örnek girişler verilmiştir.
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 `;`)
Çıktı
Program öncelikle girişin aritmetik bir ilerleme olup olmadığını kontrol etmelidir .
Özetle Aritmetik İlerlemeler (AP): Her AP'nin ortak bir farkı olacaktır. Bu, $ n $ ve $ {n-1} $ th terimleri arasındaki farktır (temel olarak $ a (n + 1) - a (n) $; burada a
sekans işlevi). Bu fark, AP'deki $ n $ değerindeki herhangi bir değer için aynı kalır. Ortak bir fark yoksa, o zaman aritmetik bir dizi değildir . N. Terimin değerini hesaplamak için, $ a (n) = a (1) + (n-1) d $ formülünü kullanın; burada $ a (1) $ ilk terim ve $ d $ ortaktır farkı.
O Eğer değil bir aritmetik ilerlemesi, daha sonra programı ( "Değil bir aritmetik ilerlemesi" için kısa) hata mesajı "NAAP" yazdırmalısınız.
O takdirde ise bir aritmetik ilerlemesi, daha sonra programın STDOUT dizisinin basitleştirilmiş n'inci terimini yazdırmalısınız.
Misal:
> 1,3,5,7,9
2n-1
Açıklama: Bu bir AP çünkü ortak bir fark var ($ 3 - 1 = 2 $). Sonra $ a (n) = a (1) + (n-1) d $ formülünü kullanırsınız.
Bu nedenle çıktı 2n-1
(boşluk olmadığına dikkat edin)
Standart boşluklara varsayılan olarak izin verilmez.
İsterseniz bir işlev oluşturabilirsiniz (parametreniz olarak sayı dizisiyle). Değilse, girdiyi dize veya dizi olarak alan ve buna göre çıktı veren tam bir program oluşturmanız gerekir .
Test senaryoları:
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
Bu kod golf yani bayt kısa kod kazanır! (kötü math-jax için özür dilerim)
Herhangi bir öneri bekliyoruz!
0,0,0,0
ve 3,1,-1,-3,-5
aritmetik ilerlemeler? Eğer öyleyse, iyi bir test örneği olacağını düşünüyorum, çünkü denediğim bir yöntemi kırdılar.