Giới thiệu
Cho số nguyên n, tính giá trị logarit cơ số 2 của n (phần nguyên). Logarit là hàm ngược của lũy thừa: log₂(x) = y tức là 2ʸ = x.
Ví dụ
Input: Log 20 → Output: 4 (vì 2⁴=16 ≤ 20 < 32=2⁵) Input: Log 64 → Output: 6 (vì 2⁶=64)
Thuật toán (Đệ quy)
Hàm log2n(unsigned int num): Trả về (num > 1) ? 1 + log2n(num / 2) : 0 Hàm main: num = 20 In log2n(num)
Code C
#include <stdio.h>
// Đệ quy tính log2 (phần nguyên)
unsigned int log2n(unsigned int num) {
return (num > 1) ? 1 + log2n(num / 2) : 0;
}
int main() {
unsigned int num = 20;
printf("%u\n", log2n(num));
return 0;
}
Kết quả
4
Giải thích
Hàm đệ quy chia liên tiếp cho 2 và đếm số lần chia cho đến khi số ≤ 1. Đây là cách tính ⌊log₂(n)⌋ hiệu quả.