Menu
CoddyTech

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: שלוש חלוקות לחצי ושלוש פעולות חיסור, 6 צעדים.

lock icon+12 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

נניח שמספר אי־זוגי יכול גם לעלות ב־1 במקום לרדת. מהו מספר הצעדים הקטן ביותר הנדרש כדי להגיע ל־0, ואיזו בחירה נכונה עבור 15?

איפוס הקוד
def numberOfSteps(n):
    # כתבו כאן קוד
מקרי בדיקה

מקרה 1

מקרה 2

מקרה 3

קלט

n = 14

צפוי

6