Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C tính Logarit cơ số 2 (log2 n)

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ả.