یک تابع بنویسید که یک آرایه را به آرایهای از تفاوتهای عناصر متوالی تبدیل کند و این فرآیند را تکرار کند تا تنها یک عنصر باقی بماند. هر تفاوت بهصورت A[n+1] - A[n]
تعریف میشود.
توضیح مثال:
[5, 1, 9, 3, 4, 0]
[-4, 8, -6, 1, -4]
# 1 - 5 = -4;
# 9 - 1 = 8;
# 3 - 9 = -6;
# etc.
[12, -14, 7, -5]
[-26, 21, -12]
[47, -33]
-80
نمونه ورودی و خروجی
NDifferences([5, 1, 9, 3, 4, 0]) ➞ -80
NDifferences([1, 1, 1, 1]) ➞ 0
NDifferences([5, 8, 8]) ➞ -3
نکات:
- هر آرایه ورودی حداقل دو عنصر دارد.
- تابع باید تا زمانی که فقط یک عنصر باقی بماند، فرآیند را ادامه دهد و آن عنصر نهایی را برگرداند.
EXPECT_EQ(NDifferences({5, 1, 9, 3, 4, 0}), -80); EXPECT_EQ(NDifferences({1, 1, 1, 1}), 0); EXPECT_EQ(NDifferences({5, 8, 8}), -3); EXPECT_EQ(NDifferences({5, 9, 7, 3}), 4); EXPECT_EQ(NDifferences({1, 5, 3, 9, 7}), -30); EXPECT_EQ(NDifferences({4, 0, 0, 0, 1}), 5);
نظرات