Kinh nghiệm

Lập trình C - Đếm số lượng chữ số của một số nguyên

23 / 02 / 2017

Đây là một trong những bài tập thực hành lập trình C khá cơ bản mà hầu như ai cũng từng làm qua.

Việc đếm số lượng chữ số của một số nguyên được thực hiện trên cơ sở đếm chữ số của toán học qua phần đơn vị. Quy trình thực hiện tiến hành như sau:

  • Lấy số nguyên chia cho 10 và lưu lại phần nguyên sau khi chia.
  • Tăng biến đếm chữ số.
  • Phần nguyên còn lại nếu còn lớn hơn 0 thì thực hiện các bước trên lại lần nữa.
  • Thực hiện dừng khi phần nguyên là 0.
  • Kết quả còn lại được lưu trong biến đếm.

Mã nguồn bằng C được viết cơ bản như sau:

#include <stdio.h>

int main()
{
    int number = 9999;
    int counter = 0;

    do {
        number /= 10;
        ++counter;
    } while (number > 0);

    printf("Ket qua la: %d", counter);

    return 0;
}

Thay vì kiểu int, có thể sử dụng long để mở rộng giới hạn số nguyên nhập vào.

Tuy nhiên, dữ liệu nhập vào có thể chuyển đổi sang kiểu chuỗi với con số có giá trị rất lớn như 9999999999999999999999, lúc này, chúng ta có thể đếm chữ số của số lớn này bằng cách đếm số kí tự của chuỗi, nghĩa là sẽ sử dụng hàm strlen() của thư viện string.h

#include <stdio.h>
#include <string.h>

int main()
{
    char *big_number = "9999999999999999999999999";

    printf("Ket qua la: %d", strlen(big_number));

    return 0;
}

Việc quy đổi dữ liệu sang kiểu chuỗi sẽ làm đơn giản hoá và tối ưu rất nhiều so với sử dụng kiểu số để tính toán thông thường.

Các bạn có thể tham khảo video hướng dẫn sau:


Quay lại danh sách
CHIA SẺ BÀI VIẾT
KodeMate
Chat với chúng tôi Chat với chúng tôi - kodemate.com