Nhiệm vụ của bạn là phân tích đầu vào và đầu ra công thức cho số hạng thứ n nếu đó là một chuỗi số học, nếu không nó sẽ in "NAAP".
Đầu vào
Đầu vào (từ STDIN) sẽ bao gồm một vài số, từ 4 đến 10 số trong đó mỗi số sẽ nằm trong phạm vi từ -1000 đến 1000, được phân tách bằng dấu phân cách (dấu cách hoặc dấu phẩy hoặc dấu chấm phẩy [tùy theo sở thích của bạn]). Dưới đây là một số ví dụ đầu vào.
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 `;`)
Đầu ra
Trước tiên, chương trình nên kiểm tra xem đầu vào có phải là một tiến trình số học hay không.
Tiến trình số học (AP) một cách ngắn gọn: Mỗi AP sẽ có một điểm khác biệt chung. Đây là sự khác biệt giữa các điều khoản $ n $ và $ {n-1} $ th (về cơ bản $ a (n + 1) - a (n) $ trong đó a
là hàm cho phần tiếp theo). Sự khác biệt này giữ nguyên cho bất kỳ giá trị nào của $ n $ trong một AP. Nếu không có sự khác biệt chung, thì đó không phải là một chuỗi số học. Để tính giá trị của số hạng thứ n, hãy sử dụng công thức này $ a (n) = a (1) + (n-1) d $ trong đó $ a (1) $ là thuật ngữ đầu tiên và $ d $ là phổ biến Sự khác biệt.
Nếu nó không phải là một tiến trình số học, thì chương trình sẽ in thông báo lỗi "NAAP" (viết tắt của "Không phải là một tiến trình số học").
Nếu đó là một tiến trình số học, thì chương trình sẽ in thuật ngữ thứ n đơn giản hóa của chuỗi thành STDOUT.
Thí dụ:
> 1,3,5,7,9
2n-1
Giải thích: Đây là một AP vì có một sự khác biệt chung ($ 3 - 1 = 2 $). Sau đó, bạn sử dụng công thức $ a (n) = a (1) + (n-1) d $
Do đó, đầu ra là 2n-1
(chú ý sự vắng mặt của không gian)
Các sơ hở tiêu chuẩn không được phép theo mặc định.
Bạn được phép tạo một hàm nếu bạn muốn (với mảng số là tham số của bạn). Nếu không, thì bạn phải tạo một chương trình đầy đủ lấy đầu vào dưới dạng chuỗi hoặc mảng và xuất ra tương ứng.
Các trường hợp thử nghiệm:
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
Đây là mã golf, vì vậy mã ngắn nhất tính bằng byte sẽ thắng! (xin lỗi vì toán học tồi
Mọi góp ý đều được chào đón!
0,0,0,0
và 3,1,-1,-3,-5
tiến bộ số học? Nếu vậy, tôi nghĩ rằng họ sẽ là những trường hợp thử nghiệm tốt, vì họ đã phá vỡ một phương pháp mà tôi đang thử.