งานของคุณคือการวิเคราะห์อินพุตและเอาต์พุตสูตรสำหรับคำศัพท์ที่ n หากเป็นลำดับเลขคณิตมิฉะนั้นจะพิมพ์ "NAAP"
อินพุต
อินพุต (จาก STDIN) จะประกอบด้วยตัวเลขไม่กี่ตัวระหว่าง 4 ถึง 10 หมายเลขโดยที่แต่ละหมายเลขจะอยู่ในช่วงระหว่าง -1000 ถึง 1,000 รวมโดยคั่นด้วยตัวคั่น (ช่องว่างหรือเครื่องหมายจุลภาคหรือกึ่งเครื่องหมายโคลอน การตั้งค่าของคุณ]) นี่คือตัวอย่างอินพุต
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} $ th (โดยทั่วไป $ a (n + 1) - a (n) $ โดยที่a
ฟังก์ชันสำหรับ sequnce) ความแตกต่างนี้ยังคงเหมือนเดิมสำหรับมูลค่าใด ๆ ของ $ n $ ใน AP หากไม่มีความแตกต่างทั่วไปนั่นก็ไม่ใช่ลำดับเลขคณิต ในการคำนวณมูลค่าของคำศัพท์ที่ n ให้ใช้สูตรนี้ $ a (n) = a (1) + (n-1) d $ โดยที่ $ a (1) $ เป็นคำแรกและ $ d $ เป็นเรื่องธรรมดา ข้อแตกต่าง
หากไม่ใช่การดำเนินการทางคณิตศาสตร์โปรแกรมควรพิมพ์ข้อความแสดงข้อผิดพลาด "NAAP" (ย่อมาจาก "Not An Progression")
หากเป็นความก้าวหน้าทางเลขคณิตโปรแกรมควรพิมพ์คำศัพท์ n-th ที่เรียบง่ายของลำดับไปยัง 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
? ถ้าเป็นเช่นนั้นฉันคิดว่าพวกเขาจะเป็นกรณีทดสอบที่ดี