Hãy đếm số lượng chữ số của số nguyên dương n python

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

Bài tập cơ bản này ta có thể có hướng giải quyết là sử dụng vòng lặp while trong ngôn ngữ lập trình C.

Đầu vào sẽ là một biến nguyên dương N,  yêu cầu của bài toán là Đếm số lượng chữ số của N.

2. Lời giải

Để giải được bài tập đếm số lượng chữ số của số nguyên dương N trong C bạn phải có kiến thức về toán học cơ bản, có kiến thức về lập trình C cơ bản.

Các bước thực hiện bài toán như sau:

Bước 1: Khai báo biến int N, khai báo biến int gan = N để gán giá trị của N, khai báo biến int dem = 0 để đến số lượng chữ số của N

Bước 2: Nhập vào N với điều kiện N>=0, nếu không yêu cầu nhập lại.

Bước 3: Sử dụng if với diều kiện N=0 thì gán giá trị của biến dem=1.

Bước 4: Ta sử dụng vòng lặp while với điều kiện là khi biến gan còn khác 0 thì vòng lặp tiếp tục, trong vòng lặp ta cho biến dem tăng lên 1 mỗi khi lặp, còn biến gan chia 10 mỗi khi lặp.

Bước 5: In biến dem ra màn hình.

Chương trình giải bài tập đếm số lượng chữ số của số nguyên dương N trong C như sau :

#include #include int main() { //khai bao bien N int N; //khai bao bien gan int gan; //Khai bao bien dem = 0 int dem = 0; do { //Nhap vao du lieu cua N printf("\nNhap N: "); scanf("%d", &N); }while(N < 0 && printf("\nLoi: n >= 0 !"));//Neu N<0 yeu cau nhap lai if(N == 0)//neu N=0 th́ bien dem = 1 { dem = 1; } // khai bao gan = N gan = N; while(gan != 0)//Neu biên gan con khac 0 thuc hien vong lap { dem = dem + 1;//bien dem tang len 1 gan = gan / 10;//bien gan chia 10 } //in bien dem ra man hinh printf("\nSo chu so cua %d la %d",N, dem); }

Ví dụ tôi nhập N=125

Kết quả:

Nhap N: 125

So chu so cua 125 la 3

3. Tổng kết

Để thực hiện giải bài tập Đếm số lượng chữ số của số nguyên dương N trong C bạn đọc cần phải có kiến thức cơ bản về ngôn ngữ lập trình C, bạn cần nắm vững cách nhập xuất căn bản và các cách sử dụng vòng lặp trong C và các phép toán học cơ bản.

cho số nguyên dương n (n<10^6). Hãy đếm số lượng các số nguyên dương a nhỏ hơn N thõa điều kiện: a có ít nhất 2 chữ số, a chia hết cho 9 và a có tất cả các chữ số giống nhau.

Ý tưởng gì cái này nhỉ, giải ra giấy / hoặc bảng đi

Số lượng là 1, số đó là 99.

Nếu lời giải trên buồn cười, bạn “động não” tí xíu nhé, dùng vòng lặp và điều kiện if. Mình gợi ý: đếm = 0 cho i chạy từ 1 đến n, nếu i >= 10 và <= 99 và i % 9 == 0 a = i nếu a % 10 == (int) a / 10 thì đếm = đếm + 1

Cuối cùng, in ra đếm

Xong!
(Thêm vào ngày 25/7: ủa, chủ topic chơi kỳ ta, sửa đề đến n < 10 mũ 6, vậy thì ra cả tá chứ chả phải chỉ có 1 số 99 hén, nhưng cách giải kia cũng tạm áp dụng được nếu chỉ cho phép xử lý số, còn cho phép chuyển đổi qua lại số - ký tự để tìm các chữ số giống nhau sẽ dễ hơn - nhớ lại kiến thức lớp 3 đặc điểm của một số chia hết cho 9 áp dụng vào).

4 Likes

Điều kiện đã rất rõ ràng, giải tay nbuw nào thì coi như thế đó thôi

A có tất cả các chữ số giống nhau => A = base * 111…11 ( base = 1 : 9)
Như vậy bạn chỉ cần duyệt:

while ( 1) i = 11 for (base = 1 : 9 ) A = i * base > N ? break : A % 9 == 0 ? get A : continue i = i * 10 + 1

2 Likes

(m * số chữ số) chia hết cho 9, với m chạy từ 1 đến 9.

4 Likes

Home Categories FAQ/Guidelines Terms of Service Privacy Policy

Bài viết hôm nay mình sẽ hướng dẫn các bạn cách đếm số lượng chữ số của một số nguyên dương bằng code C++

Giới thiệu bài toán đếm số lượng chữ số của số nguyên

Bài toán: Nhập vào một số nguyên dương n hãy đếm xem số nguyên dương n có bao nhiêu chữ số.

Ý tưởng:

  • Đầu tiên ta dùng vòng lặp while nếu n > 10 thì tiếp tục lấy n = n /10.;
  • Với mỗi lần vòng while chạy thì ta tăng biến đếm lên một lần dem++;
  • Số lượng chữ số của số nguyên n bằng dem + 1
  • Ý tưởng tính trên là mình dựa trên công thức số lượng chữ số của một số nguyên n bằng logarit cơ số 10 cộng với một.

 Code bài giải bằng C++

#include

usingnamespacestd;

intmain(){

    intn;

    cout<<"Nhap vao so nguyen n: ";

    cin>>n;

    intdem=0;

    while(n>=10){

        n/=10;// hay n = n /10;

        dem++;

    }

    cout<<"So luong chu so cua so nguyen la: "<<dem+1<<endl;

}

Sau khi chạy chương trình ta có kết quả sau:

Nhap vao so nguyen n: 10

So luong chu so cua so nguyen la: 2

Như mình nói ở trên số lượng chữ số của một số nguyên n bằng logarit cơ số 10 cộng với một. Vậy thì ta nên viết một hàm tính logarit cơ số 10 luôn .

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#include

usingnamespacestd;

intlogarit(intn){

    int dem=0;

    while(n>=10){

        n/=10;// hay n = n /10;

        dem++;

    }

    returndem;

}

intmain(){

    int n;

    cout<<"Nhap vao so nguyen n: ";

    cin>>n;

    cout<<"So luong chu so cua so nguyen la: "<<logarit(n)+1<<endl;

}

Sau khi chạy chương trình trên ta cũng nhận kết quả tương tự

Nhap vao so nguyen n: 10

So luong chu so cua so nguyen la: 2

Bài viết của mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !