SIMPLE
STRING
ARRAY
SORTING
POINTER
CALCULATION
NUMBER
OTHER
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Đếm số lượng chữ số lẻ của số nguyên dương n bằng C / C++

Trong bài viết này chúng ta sẽ thực hiện chương trình đếm các chữ số lẻ của số nguyên dương n bằng C / C++. Ví dụ 1234 có 2 chữ số lẻ, 297429 có 3 chữ số lẻ,....

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Mình sẽ thực hiện hai chương trình để đếm các chữ số của số nguyên dương n bằng hai ngôn ngữ khác nhau là C và C++.

Đếm các chữ số lẻ của số nguyên dương n bằng C

Ta cần khai báo hai biến n là số cần đếm chữ số lẻ và temp là biến thay thế cho n để ta sử dụng nó đếm chữ số. Một biến count = 0 để lưu số chữ số lẻ của n.

Sử dụng vòng lặp do..while để yêu cầu người dùng nhập vào số nguyên dương n, nếu n < 0 thì yêu cầu nhập lại.

Bài viết này được đăng tại [free tuts .net]

 do
  {
    printf("\nNhập vào số nguyên n lớn hơn 0: ");
    scanf("%ld", &n);
    if(n <= 0)
    {
      printf("\n Số n phải lớn hơn 0, vui lòng nhập lại !");
    }
  }while(n <= 0);

Tiếp đến ta gán n = temp, khi đó ta sẽ sử dụng temp để đếm số lẻ chữ số thay cho n.

Sử dụng một vòng lặp while với n != 0, trong vòng lặp ta lấy temp = temp / 10, cứ sau mỗi vòng lặp nếu temp % 2 == 1 (temp là số lẻ) thì tăng count lên 1.

while(temp != 0)
  {
    //sau một vòng lặp thì sochuso sẽ tăng lên 1
    count++;
    //chia lấy nguyên cho 10, cứ một lần chia thì số n sẽ có một chữ số
    temp = temp / 10;
  }

Sau khi kết thúc vòng lặp thì ta được số chữ số lẻ là count, khi đó chỉ cần in count ra màn hình bằng printf().

Code:

#include<stdio.h>
#include<math.h>
int main()
{
  //khai báo biến
  long temp, n;
  int count = 0;
  //sử dụng dowhile để yêu cầu người dùng nhập vào só lớn hơn 0
  //nếu n < 0 thì yêu cầu nhập lại
  do
  {
    printf("\nNhập vào số nguyên n lớn hơn 0: ");
    scanf("%ld", &n);
    if(n <= 0)
    {
      printf("\n Số n phải lớn hơn 0, vui lòng nhập lại !");
    }
  }while(n <= 0);
  //gán biến n cho temp, ta sẽ sử dụng temp để đếm các chữ số
  temp = n;
  //nếu n == 0 thì có 1 chữ số
  if(n == 0) count = 1;
  //nếu temp khác 0 thì sử dụng vòng lặp while để đếm số
  while(temp != 0)
  {
    //sau một vòng lặp nếu temp là số lẻ thì count sẽ tăng lên 1
    if(temp % 2 == 1) count++;
    //chia lấy nguyên cho 10, cứ một lần chia thì số n sẽ có một chữ số
    temp = temp / 10;
  }
  printf("\nSố chữ số lẻ của %ld là: %d", n, count);

  printf("\n--------------------------------------\n");
  printf("Chương trình này được đăng tại Freetuts.net");
}

Kết quả:

bai22 01 PNG

Đếm các chữ số lẻ của số nguyên dương n bằng C++

Để đếm các chữ số lẻ của số nguyên dương n bằng C++ cũng tương tự như ngôn ngữ C.

Ta chỉ cần thay thế printf() và scanf() trong C bằng cout và cin trong C++. Nhớ khai báo thư viện <iostream> trước khi sử dụng nó nhé.

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
  //khai báo biến
  long temp, n;
  int count = 0;
  //sử dụng dowhile để yêu cầu người dùng nhập vào só lớn hơn 0
  //nếu n < 0 thì yêu cầu nhập lại
  do
  {
    cout<<"\nNhập vào số nguyên n lớn hơn 0: ";
    cin>>n;
    if(n <= 0)
    {
      cout<<"\n Số n phải lớn hơn 0, vui lòng nhập lại !";
    }
  }while(n <= 0);
  //gán biến n cho temp, ta sẽ sử dụng temp để đếm các chữ số
  temp = n;
  //nếu n == 0 thì có 1 chữ số
  if(n == 0) count = 1;
  //nếu temp khác 0 thì sử dụng vòng lặp while để đếm số
  while(temp != 0)
  {
    //sau một vòng lặp thì count sẽ tăng lên 1
    if(temp % 2 == 1)count++;
    //chia lấy nguyên cho 10, cứ một lần chia thì số n sẽ có một chữ số
    temp = temp / 10;
  }
  cout<<"\nSố chữ số của "<<n<<" là: " << count;

  cout<<"\n--------------------------------------\n";
  cout<<"Chương trình này được đăng tại Freetuts.net";

}

Kết quả:

bai22 02 PNG

Như vậy là chúng ta đã thực hiện xong chương trình đếm các chữ số lẻ của số nguyên dương n bằng C / C++. Các bạn có thể tham khảo các bài tập khác tại Tổng hợp 1000 bài tập C / C++ nhé, chúc các bạn thành công !!!

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý chuỗi (string.h) trong C/C++

Các hàm xử lý chuỗi (string.h) trong C/C++

Thread Pools và Parallel Algorithms trong C++

Thread Pools và Parallel Algorithms trong C++

Tạo và quản lý các Multithreading trong C++

Tạo và quản lý các Multithreading trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Try, Catch, và Throw của Exception Handling trong C++

Try, Catch, và Throw của Exception Handling trong C++

Cách sử dụng Lambda Expressions trong C++

Cách sử dụng Lambda Expressions trong C++

Sử dụng weak_ptr trong C++

Sử dụng weak_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng unique_ptr trong C++

Sử dụng unique_ptr trong C++

Tổng quan về Smart Pointers trong C++

Tổng quan về Smart Pointers trong C++

Sử dụng Iterators trong STL của C++

Sử dụng Iterators trong STL của C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng trong List trong C++

[Iterator] Sử dụng trong List trong C++

[STL] Sử dụng Vector trong C++

[STL] Sử dụng Vector trong C++

Tổng quan về Iterators trong C++

Tổng quan về Iterators trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

Top