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 צעדים.
challenge icon

שאלת המשך

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

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

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

n = 14

הפלט הצפוי

6