بکندباز

در این چالش باید بررسی کنید که آیا یک عدد داده‌شده “خودتوصیف‌گر” است یا خیر. یک عدد خودتوصیف‌گر ویژگی‌های زیر را دارد:

  1. تعداد ارقام آن باید زوج باشد، زیرا باید به صورت جفت‌های مجاور تقسیم شود.
  2. هر جفت از ارقام، به صورت [x, y]، بیان می‌کند که عدد شامل x نمونه از رقم y است.
  3. اگر تمام جفت‌های ارقام شرایط فوق را برآورده کنند، عدد خودتوصیف‌گر است.

توضیح با مثال‌ها

  • عدد 224444:
    • تقسیم به جفت‌ها: [2, 2], [4, 4], [4, 4]
    • بررسی هر جفت:
      • [2, 2]: دو نمونه از 2 وجود دارد. درست.
      • [4, 4]: چهار نمونه از 4 وجود دارد. درست.
      • [4, 4]: چهار نمونه از 4 وجود دارد. درست.
    • نتیجه: True
  • عدد 333:
    • تعداد ارقام فرد است، بنابراین تقسیم به جفت ممکن نیست.
    • نتیجه: False

تابعی به نام is_self_describing بنویسید که یک عدد صحیح غیرمنفی num دریافت کند و بررسی کند که آیا عدد خودتوصیف‌گر است یا خیر.

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

is_self_describing(10123331) ➞ True

is_self_describing(224444) ➞ True

is_self_describing(2211) ➞ False

نکات

  1. اگر تعداد ارقام عدد فرد باشد، عدد خودتوصیف‌گر نیست.
  2. جفت‌های تکراری قابل‌قبول هستند، اما باید برای هر جفت شرط برقرار باشد.
  3. تمام ارقام عدد باید در بررسی جفت‌ها لحاظ شوند.
  4. ورودی همیشه یک عدد صحیح معتبر غیرمنفی خواهد بود.
self.assertEqual(is_self_describing(10123331), True)
self.assertEqual(is_self_describing(224444), True)
self.assertEqual(is_self_describing(2211), False)
self.assertEqual(is_self_describing(333), False)
self.assertEqual(is_self_describing(27273332), True)
self.assertEqual(is_self_describing(11), False)
self.assertEqual(is_self_describing(22), True)
self.assertEqual(is_self_describing(881722888888), True)

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

Amin
امتیاز:‌ 17191
تصحیح اتوماتیک 0 0
‎پایتون‎
6 بهمن 1403

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

MarsBoy
امتیاز:‌ 17191
تصحیح اتوماتیک 0 0
‎پایتون‎
6 بهمن 1403

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

نظرات

*
*

    MarsBoy پاسخ

    وقت بخیر ،
    این عدد چرا خود توصیف گر نیست ؟ (2211)
    [1,1] [2,2] دو تا دو داره ...یکی یک .... تعداد ارقام هم زوج هم هست ... متوجه نشدم چرا False شده.

    ممنون

    MarsBoy پاسخ

    متوجه شدم .. دو تا یک داره ...اما [1,1] یکی یک داره ...

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