بکندباز

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

EXPECT_EQ(CountPairs({12, 34}), 0);
EXPECT_EQ(CountPairs({111, 3, 21, 30}), 6);
EXPECT_EQ(CountPairs({5, 5, 5}), 3);

پاسخ های کاربران به این تمرین

Amin
امتیاز:‌ 20063
تصحیح اتوماتیک 0 0
‎C++‎
14 بهمن 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

user-qmDa
امتیاز:‌ 3078
تصحیح اتوماتیک 0 0
‎C++‎
9 بهمن 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

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