आसान 0 हल किए गए 0% स्वीकृति

Halve Until One

Count how many halvings bring a number down to 1.

आप क्या सीखेंगे

  • शर्त ग़लत होने तक लूप चलाना
  • दोहराव गिनना
  • पूर्णांक भाग उपयोग करना

समस्या

Repeatedly divide n by 2, dropping any remainder (integer division), until it becomes 1. Count how many divisions that takes.

Implement halve_until_one(n).

Input

n: A positive integer.

Output

Return the number of divisions.

सीमाएँ

1 ≤ n ≤ 1,000,000,000,000

उदाहरण

उदाहरण 1
इनपुट:
n = 20

अपेक्षित आउटपुट:
expected = 4
इनपुट:
long long n = 20;

अपेक्षित आउटपुट:
long long expected = 4;
इनपुट:
long n = 20;

अपेक्षित आउटपुट:
long expected = 4;

व्याख्या

20 → 10 → 5 → 2 → 1 takes 4 divisions.

उदाहरण 2
इनपुट:
n = 1

अपेक्षित आउटपुट:
expected = 0
इनपुट:
long long n = 1;

अपेक्षित आउटपुट:
long long expected = 0;
इनपुट:
long n = 1;

अपेक्षित आउटपुट:
long expected = 0;

व्याख्या

n is already 1, so no divisions are needed.

कैसे हल करें

पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।

संकेत 1

Gin lo ki number ko 2 se divide karke kitni baar chhota kar sakte ho jab tak woh 1 na ho jaye.

संकेत 2

Yahan repeated integer division kaafi hai; discarded remainders track karne ki zarurat nahi.

संकेत 3

Dhyan rahe, value 1 par hi stop karna hai, 0 par nahi.

अपेक्षित जटिलता

समय O(log n), अतिरिक्त स्थान O(1)

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।