Menu
CoddyTech
flag Ar iconالعربيةdown icon

Steps to Reduce a Number to Zero

ابدأ بعدد صحيح غير سالب n، وكرّر قاعدة واحدة حتى يصل إلى 0: إذا كان العدد زوجيًا، فاقسمه على 2؛ وإذا كان فرديًا، فاطرح منه 1. يُعدّ كل تطبيق للقاعدة خطوة واحدة. أرجِع عدد الخطوات اللازمة.

الدالة

numberOfSteps(n: integer) → integer
ninteger
العدد الابتدائي
تُرجعinteger
عدد الخطوات حتى يصل العدد إلى 0

القيود

  • 0 ≤ n ≤ 231 - 1

أمثلة

المدخلات
n = 14
المخرجات
6
الشرح
يتناقص العدد على النحو التالي 14 → 7 → 6 → 3 → 2 → 1 → 0: ثلاث عمليات قسمة على 2 وثلاث عمليات طرح، 6 خطوات.

lock icon+12 اختبارات مخفية عند الإرسال

challenge icon

سؤال إضافي

افترض أن العدد الفردي يمكن أن يزيد بمقدار 1 بدلًا من أن ينقص. ما أقل عدد من الخطوات اللازمة للوصول إلى 0، وما الخيار الصحيح للعدد 15؟

إعادة ضبط الشيفرة
def numberOfSteps(n):
    # اكتب الكود هنا
حالات الاختبار

الحالة 1

الحالة 2

الحالة 3

المدخلات

n = 14

المتوقع

6