بکندباز

یک آرایه (لیست) از اعداد صحیح مثبت داده شده‌است. تابعی بنویسید که تعداد جفتهای اندیس (i, j) را برگرداند که در آن i < j و مجموع ارقام اعداد در این اندیس‌ها با هم برابر باشند.

راهنمایی: اگر n عدد با مجموع ارقام یکسان وجود داشته باشد، تعداد جفت‌های ممکن از رابطهٔ n*(n-1)/2 محاسبه می‌شود.

مثال:
ورودی: [123, 456, 78]
خروجی: 1
توضیح:

  • مجموع ارقام ۱۲۳ برابر با ۱+۲+۳ = ۶ است.
  • مجموع ارقام ۴۵۶ برابر با ۴+۵+۶ = ۱۵ است.
  • مجموع ارقام ۷۸ برابر با ۷+۸ = ۱۵ است.
    تنها جفت معتبر (۱، ۲) است که مجموع ارقام هر دو ۱۵ میباشد.
  • مثال دیگر: count_pairs([111, 3, 21, 30]) برابر با ۶ می‌شود چون هر ۴‌ عدد مجموع ارقام برابر دارند و در نتیجه ۶=۲/(۴×۳)

نمونه ورودی و خروجی

CountPairs([12, 34]) ➞ 0

CountPairs([111, 3, 21, 30]) ➞ 6

CountPairs([5, 5, 5]) ➞ 3
۱. اطمینان حاصل کنید که اعداد منفی در ورودی وجود ندارند.
۲. در نظر گرفتن اعداد صفر (اگر مجاز باشند) نیز باید بررسی شود.
۳. پیچیدگی زمانی این الگوریتم O(n * k) است که n طول آرایه و k تعداد ارقام هر عدد است.

CountPairs([12, 34])  ➞ 0
CountPairs([111, 3, 21, 30])  ➞ 6
CountPairs([5, 5, 5])  ➞ 3

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

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