بکندباز

یک تابع بنویسید که یک آرایه را به آرایه‌ای از تفاوت‌های عناصر متوالی تبدیل کند و این فرآیند را تکرار کند تا تنها یک عنصر باقی بماند. هر تفاوت به‌صورت 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);

هنوز پاسخی برای این تمرین ثبت نشده است

نظرات

*
*

تمرینات مرتبط