Hỏi về ý nghĩa câu lệnh

khi nhập một số m bất gì thì đếm số chữ số thì sử dụng lệnh này và count sẽ bằng số chữ số - 1
count = (int)log10(m);

Gì đây trời, mong bạn ghi rõ ràng câu hỏi. :frowning:
Ví dụ một số nguyên (khác 0) X có số chữ số là k, thì ta có:
10^(k-1) <= |X| < 10^k
=> k-1 <= log10(|X|) < 10^k
Khi ép kiểu int cho log10(|X|) nó chỉ lấy phần nguyên, nghĩa là:
(int)log10(|**X**|) = k - 1

3 Likes

Bạn vui lòng đặt câu hỏi rõ ràng hơn.
Có lẽ đây là là 1 đoạn từ tài liệu nào đó.

Giải thích:
Nếu bạn biết Logarit cơ số 10 là gì, thì trong lập trình nó là log10().

n = 10^y => log10(n) = y
Kết quả của log10() là số mũ của cơ số 10.

1000 = 10^3 => log10(1000) = 3
1000000 = 10^6 => log10(1000000) = 6
log10(123456) = 5.0915122 (5)
log10(123456789) = 8.09151498 (8)

Rõ ràng, số lượng chữ số sẽ bằng số mũ + 1 => số mũ = số chữ số - 1.

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?