cuốn sách gpt4 ai đã làm

c - Thuật toán hiệu quả để tính tổng các chữ số cơ số 2 (số chữ số) trong một khoảng số nguyên dương

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 03:54:57 28 4
mua khóa gpt4 Nike

Giả sử tôi nhận được hai số nguyên Một, b 其中 Một là số nguyên dương và nhỏ hơn b . Tôi phải tìm một thuật toán hiệu quả để [a, b] Cung cấp tổng các chữ số cơ số 2 (chữ số) trong khoảng. Ví dụ, trong khoảng [0, 4] Trong , tổng các chữ số bằng 9 vì 0 = 1 chữ số, 1 = 1 chữ số, 2 = 2 chữ số, 3 = 2 chữ số và 4 = 3 chữ số.

Chương trình của tôi có thể tính toán số này bằng cách sử dụng vòng lặp, nhưng tôi đang tìm một phương pháp hiệu quả hơn cho các số lớn. Đây là một đoạn mã của tôi chỉ để bạn tham khảo:

int numberOfBits(int i) {
nếu(i == 0) {
return 1;
}
khác {
trả về (int) log2(i) + 1;
}
}

Hàm trên dùng để tính số chữ số của một số nhất định trong khoảng.

Mã bên dưới cho bạn thấy cách tôi sử dụng mã này trong chức năng chính của mình.

for(i = a; i <= b; i++) {
l = l + numberOfBits(i);
}
printf("Chữ số: %d\n", l);

Lý tưởng nhất là tôi có thể lấy số chữ số bằng cách lấy hai giá trị trong khoảng của mình và sử dụng một số thuật toán đặc biệt.

câu trả lời hay nhất

Hãy thử mã này, tôi nghĩ nó cung cấp cho bạn những gì bạn cần để tính toán nhị phân:

bit int(int x)
{
if(!x) trả về 1;
khác
{
int i;
for(i = 0; x; i++, x >>= 1);
trả lại tôi;
}
}

Về c - một thuật toán hiệu quả để tính tổng các chữ số cơ số 2 (số chữ số) trong khoảng các số nguyên dương, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/53136285/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress