โจทย์
ดูต้นฉบับ (ภาษาอังกฤษ)ทำการหาร n ด้วย 2 ซ้ำ ๆ โดยปัดเศษทิ้ง (หารจำนวนเต็ม) จนกว่าจะเหลือ 1 นับจำนวนครั้งที่ต้องหาร
เขียนฟังก์ชัน halve_until_one(n)
อินพุต
n: จำนวนเต็มบวก
เอาต์พุต
คืนค่าจำนวนครั้งที่ต้องหาร
เงื่อนไข
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 ใช้การหาร 4 ครั้ง
ตัวอย่างที่ 2
อินพุต:
n = 1
ผลลัพธ์ที่คาดหวัง:
expected = 0
อินพุต:
long long n = 1;
ผลลัพธ์ที่คาดหวัง:
long long expected = 0;
อินพุต:
long n = 1;
ผลลัพธ์ที่คาดหวัง:
long expected = 0;
คำอธิบาย
n เป็น 1 อยู่แล้ว จึงไม่ต้องหารเลย
แหล่งอ้างอิง
โจทย์นี้ปรับให้เหมาะกับ CodeUtility กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน