بکندباز

عدد کاپریکار عددی مثبت است که اگر آن را به توان دو برسانیم، سپس عدد به‌دست‌آمده را به دو قسمت جداگانه تقسیم کنیم و آن‌ها را با هم جمع کنیم، مقدار حاصل برابر خود عدد اولیه باشد.

قوانین:

  1. اگر تعداد ارقام حاصل‌ضرب زوج باشد، دو قسمت باید هم‌اندازه باشند.
  2. اگر تعداد ارقام فرد باشد، نیمه‌ی راست باید طولانی‌تر باشد، و نیمه‌ی چپ می‌تواند صفر یا کوچک‌تر باشد.

تابعی بنویسید که یک عدد صحیح مثبت n دریافت کند و بررسی کند که آیا عدد کاپریکار است یا نه.
اگر عدد کاپریکار باشد، True و در غیر این صورت False برگرداند.

مثال

is_kaprekar(3) ➞ False
# 3² = "9"
# تقسیم: Left = 0, Right = 9
# 0 + 9 = 9 ≠ 3  ❌

نکات:

  • عدد 0 و 1 به‌طور بدیهی کاپریکار هستند، زیرا برابر توان دوم خودشان هستند.
  • اعدادی که فقط شامل 9 هستند (مثل 9، 99، 999، …) همیشه اعداد کاپریکار هستند
Assert.False(Backendbaz.IsKaprekar(3));
Assert.False(Backendbaz.IsKaprekar(5));
Assert.True(Backendbaz.IsKaprekar(297));
Assert.False(Backendbaz.IsKaprekar(2));
Assert.True(Backendbaz.IsKaprekar(9));
Assert.False(Backendbaz.IsKaprekar(65));
Assert.True(Backendbaz.IsKaprekar(99));
Assert.False(Backendbaz.IsKaprekar(666));

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

نظرات

*
*

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