LATEST

Đảo ngược một số trong C / C++

Trong bài viết này, codehow sẽ hướng dẫn các bạn cách đảo ngược một số trong C / C++. Đây là dạng bài tập căn bản sử dụng các vòng lặp trong C / C++.

Đảo ngược một số có nghĩa là đảo ngược vị trí của các thừa số trong một số.

Ví dụ: Mình có số 12345, thì khi đảo ngược số đó sẽ thành 54321, khi này hàng chục ngìn đã biến thành hàng đơn vị.

Vậy làm thế nào để viết được chương trình xử lý bài toán này, hãy cùng mình bắt đầu thôi nào.

Đảo ngược một số trong C / C++ sử dụng vòng lặp for

Trong chương trình này mình sẽ đảo ngược một số trong C / C++ bằng cách sử dụng vòng lặp for. Mình có giải thuật đảo ngược một số như sau:

int num, rem, reverse_num = 0;
rem = num % 10;
reverse_num = reverse_num * 10 + rem;
num = num / 10;

Giả sử mình có số num = 123, thuật toán trên sẽ chạy như sau:

  • rem = num % 10, tức là rem = 123 % 10 = 3.
  • reverse_num = reverse_num * 10 + rem, tức là reverse_num = 0 * 10 + 3 = 3.
  • Sau đó ta lấy số num / 10 để tiếp tục vòng lặp tiếp theo, khi đó num = 123 / 10 = 12.

Cứ như vậy khi đến khi kêt thúc vòng lặp, ta sẽ được biến reverse_num là số đảo ngược của số num.

Hãy xem đoạn chương trình dưới đây.

Chương trình C:

#include <stdio.h>

int main(void) {
  int num,rem,reverse_num=0;
  printf("\nNhập vào số num:");
   scanf("%d", &num);
   for(;num>=1;)
   {
      rem = num % 10;
      reverse_num = reverse_num * 10 + rem;
      num = num / 10;
   }
   printf("\nSố đảo ngược là: %d",reverse_num);

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

Kết quả:

bai2 01 png

Chương trình C++:

#include <iostream>
using namespace std;

int main() {
  int num,rem,reverse_num=0;
  cout<<"\nNhập vào số num:";
   cin>>num;
   for(;num>=1;)
   {
      rem = num % 10;
      reverse_num = reverse_num * 10 + rem;
      num = num / 10;
   }
   cout<<"\nSố đảo ngược là: "<< reverse_num;
  
  cout<<"\n-----------------------------\n";
  cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả:

bai2 02 png

Đảo ngược một số trong C / C++ sử dụng vòng lặp while

Tương tự như vòng lặp for, ta cũng có thể đảo ngược một số trong C / C++ bằng vòng lặp while. Sử dụng vòng lặp while với điều kiện num > 1, bên trong ta thực hiện chia lấy dư và chia lấy nguyên để đảo ngược số đó.

Chương trình C:

#include <stdio.h>

int main(void) {
  int num,rem,reverse_num=0;
  printf("\nNhập vào số num:");
   scanf("%d", &num);
   while(num>=1)
   {
      rem = num % 10;
      reverse_num = reverse_num * 10 + rem;
      num = num / 10;
   }
   printf("\nSố đảo ngược là: %d",reverse_num);

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

Kết quả:

bai2 03 png

Chương trình C++:

#include <iostream>
using namespace std;

int main() {
  int num,rem,reverse_num=0;
  cout<<"\nNhập vào số num:";
   cin>>num;
   while(num>=1)
   {
      rem = num % 10;
      reverse_num = reverse_num * 10 + rem;
      num = num / 10;
   }
   cout<<"\nSố đảo ngược là: "<< reverse_num;
  
  cout<<"\n-----------------------------\n";
  cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả:

bai2 04 png

Đảo ngược một số trong C / C++ sử dụng vòng lặp do...while

Tương tự như vòng lặp while và vòng lặp for, ta cũng có thể đảo ngược một số trong C / C++ bằng cách sử dụng vòng lặp do...whille. Hãy xem đoạn chương trình dưới đây:

Chương trình C:

#include <stdio.h>

int main(void) {
  int num,rem,reverse_num=0;
  printf("\nNhập vào số num:");
   scanf("%d", &num);
   do
   {
      rem = num % 10;
      reverse_num = reverse_num * 10 + rem;
      num = num / 10;
   }while(num >= 1);
   printf("\nSố đảo ngược là: %d",reverse_num);

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

Kết quả:

bai2 05 png

Chương trình C++:

#include <iostream>
using namespace std;

int main() {
  int num,rem,reverse_num=0;
  cout<<"\nNhập vào số num:";
   cin>>num;
   do
   {
      rem = num % 10;
      reverse_num = reverse_num * 10 + rem;
      num = num / 10;
   }while(num >= 1);
   cout<<"\nSố đảo ngược là: "<< reverse_num;
  
  cout<<"\n-----------------------------\n";
  cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả:

bai2 06 png

Như vậy là chúng ta đã cùng nhau thực hiện xong chương trình đảo ngược một số trong C / C++. Các bạn có thể luyện tập nhiều hơn tại serries bài tập C / C++ của codehow nhé. Cảm ơn các bạn rất nhiều!!!

Cùng chuyên mục:

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán tính lũy thừa trong C / C++

Thuật toán tính lũy thừa trong C / C++

Top