Viết chương trình tìm số đảo ngược của 1 số nguyên dương nn nhập từ ban phim Python

Dạng bài tập này giúp các bạn giỏi về: Lưu đồ thuật toán

>> Bài tập 47: Hãy tính tổng các chữ số chẵn của số nguyên dương n

>> Bài tập 48: Hãy tính tích các chữ số lẻ của số nguyên dương n

>> Bài tập 49: Cho số nguyên dương n. Hãy tìm chữ số đầu tiên của n

Nhắc lại về lưu đồ thuật toán #flowchart là gì

Lưu đồ thuật toán là công cụ dùng để biểu diễn thuật toán, mô tả nhập [input], dữ liệu xuất [output] và luồng xữ lý thông qua các ký hiệu hình học.

Lưu ý: Công cụ này rất thích hợp để bạn học cách tư duy phân tích bài toán. Thường thì các bạn sinh viên không thích làm lưu đồ thuật toán cho lắm. Thay vào đó thì các bạn ấy thích code ngay khi nhận được yêu cầu. Nhưng bạn ạ, đó là cách học nóng vội mà thôi, sẽ có ít người thành công với cách học như vậy. Một trong những bí quyết để học lập trình tốt chính là học cách tư duy và phân tích bài toán chứ không phải học chỉ chăm chăm vào học ngôn ngữ. Do đó bạn hãy học và sử dụng công cụ này để việc lập trình trở nên dễ dàng hơn.

Các ký hiệu

Để vẽ lưu đồ thuật toán, bạn cần nhớ và tuân thủ các ký hiệu sau đây:

Xem Bảng ký hiệu này chắc bạn vẫn chưa hình dung được là vẽ sơ đồ thuật toán [flowchart] như thế nào đâu phải không. Hãy cứ bình tĩnh bạn nhé, mình sẽ hướng dẫn bạn vẽ bằng những ví dụ cụ thể. Nhưng trước tiên bạn cần lưu ý phương pháp để duyệt [đọc] lưu đồ thuật toán đã nhé.

Bạn duyệt lưu đồ thuật toán theo trình tự sau:

  • Duyệt từ trên xuống.
  • Duyệt từ trái sang phải.
#include #include int main[] { int n; int SoNghichDao = 0; do { printf["\nNhap n: "]; scanf["%d", &n]; }while[n < 0 && printf["\nLoi: [n >= 0]"]]; printf["\nSo dao nguoc cua %d la: ", n]; do { printf["%d", n % 10]; }while[n /= 10]; // tương đương n = n / 10; n != 0; // có thể viết /*do { SoNghichDao = SoNghichDao * 10 + n % 10; n /= 10; }while[n != 0]; printf["\n%d", SoNghichDao];*/ getch[]; return 0; }

Tác giả Tommy

Hướng dẫn tất cả cách đảo ngược chuỗi trong python. Bạn sẽ học được tất cả cách đảo ngược chuỗi trong python bằng cách sử dụng phương thức reverse[], hàm reverse trong python cũng như bằng cách cắt [slice] chuỗi python sau bài học này.

Chúng ta có 3 phương pháp để đảo ngược chuỗi trong python như sau:

  • Phương thức reverse[] : đảo ngược chuỗi trong python
  • Hàm reverse trong python : Đảo ngược chuỗi và tạo ra một trình lặp
  • Cắt [slice] chuỗi : Đảo ngược chuỗi và tạo ra một chuỗi mới

Chúng ta sẽ cùng tìm hiểu các phương pháp này ở dưới đây:

Đảo ngược chuỗi trong python| Phương thức reverse[]

Phương thức reverse[] vốn được sử dụng để đảo ngược list trong Python. Tuy nhiên chúng ta lại không thể sử dụng phương thức này trực tiếp với chuỗi được.

Để đảo ngược chuỗi ban đầu, chúng ta cần chuyển chuỗi sang list, sau đó đảo ngược list thu được trước khi chuyển lại list đó về dạng chuỗi.

Ví dụ, chúng ta đảo ngược chuỗi trong python bằng cách ứng dung phương thức reverse[] như sau:

org_str = 'aiueo'
new_str_list = list[org_str]
new_str_list.reverse[]
new_str = ''.join[new_str_list]

print[org_str]
print[new_str]


Đảo ngược chuỗi trong python | Hàm reversed[]

Tương tự như với phương thức phương thức reverse[], chúng ta cũng không thể sử dụng trực tiếp hàm reversed[] với kiểu chuỗi được.

Tuy nhiên khác với phương thức reverse[] không thể sử dụng với tuple thì hàm reversed[] lại có thể sử dụng với tuple được, do đó để đảo ngược chuỗi trong python, chúng ta có 2 sự lựa chọn là chuyển chuỗi sang tuple hoặc list, sau đó đảo ngược tuple hoặc list thu được trước khi chuyển lại kết quả về dạng chuỗi.

Ví dụ, chúng ta đảo ngược chuỗi trong python bằng cách ứng dụng hàm reversed[] và tuple như sau:

org_str = 'aiueo'
new_str_list = tuple[reversed[org_str]]
new_str = ''.join[new_str_list]

print[org_str]
print[new_str]


Tương tự, chúng ta cũng có thể đảo ngược chuỗi trong python bằng cách ứng dụng hàm reversed[] và list như sau:

org_str = 'aiueo'
new_str_list = list[reversed[org_str]]
new_str = ''.join[new_str_list]

print[org_str]
print[new_str]


Đảo ngược chuỗi trong python | Cắt [slice] chuỗi

Chúng ta cũng có thể ứng dụng chức năng cắt [slice] chuỗi để đảo ngược chuỗi trong python.

Và đây cũng là cách đơn giản và hiệu quả nhất mà bạn có thể sử dụng để đảo ngược chuỗi trong python.

Nếu chúng ta chỉ định đối số step = -1 khi Cắt [slice] chuỗi trong python, chuỗi được cắt ra sẽ có thứ tự ngược lại với chuỗi ban đầu. Lợi dụng tính chất này, chúng ta có thể đảo ngược chuỗi trong python như ví dụ sau:

orinary_str = org_str = 'aiueo'
new_str = orinary_str[::-1]

print[orinary_str]
print[new_str]


  • Bài viết liên quan: Cắt [slice] chuỗi trong python

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn các cách đảo ngược chuỗi trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

Hướng dẫn cách tìm số đảo ngược trong C. Bạn sẽ học được cách tạo hàm tìm số đảo ngược trong C sau bài học này.

Bài toán tìm số đảo ngược trong C

Tìm số đảo ngược trong C là bài toán nhập vào một số nguyên dương n từ bàn phím. In ra số đảo ngược của số n vừa nhập.

Ví dụ chúng ta nhập số 1234 thì sẽ thu về số 4321 chẳng hạn.

Mặc dù không không có ý nghĩa về mặt ứng dụng nhưng đây là một bài toán căn bản vô cùng hay giúp chúng ta rèn luyện lập trình bằng ngôn ngữ C.

Cách tìm số đảo ngược trong C rất đơn giản, chúng ta viết lại từng hàng trong số theo thứ tự ngược lại là xong.

Vậy thì chúng ta sẽ viết ngược như thế nào?

Giả sử số đã cho là n = 1234. Chúng ta có thể biểu diễn số này dưới dạng tổng các lũy thừa của 10 như sau:

n = 1x104 + 2x103 + 3x102 + 4x101

Để biểu diễn số này theo cách ngược lại, chúng ta sẽ giữ nguyên phần lũy thừa của 10 và viết ngược lại từng chữ số trong tổng như sau:

n = 4x104 + 3x103 + 2x102 + 1x101

Để tìm ra được từng chữ số trong hàng thập phân như trên, chúng ta sẽ chia lần lượt số đã cho cho các luỹ thừa của 10 để tìm phần dư là xong.

Chúng ta sẽ sử dụng vòng lặp while và viết hàm để thực hiện xử lý đảo ngược số ở trên như sau:


int reverse_num[int n]{
int reverse = 0;
while [n > 0] {
reverse = reverse * 10 + n % 10;
n /= 10;
}
return reverse;
}

Chúng ta có thể gọi hàm này và sử dụng trong chương trình nhập vào một số nguyên dương n từ bàn phím. In ra số đảo ngược của số n vừa nhập trong C như sau:




int reverse_num[int n]{
int reverse = 0;
while [n > 0] {
reverse = reverse * 10 + n % 10;
n /= 10;
}
return reverse;
}

int main[void]{
int n;

printf[">> nhap mot so nguyen duong: "];
scanf["%d",&n];

int result = reverse_num[n];
printf["So dao nguoc: %d\n",result ];

return 0;
}

Màn hình nhập liệu và kết quả tìm số đảo ngược trong C sẽ như sau:

>> nhap mot so nguyen duong: 1234
So dao nguoc: 4321

>> nhap mot so nguyen duong: 23456789
So dao nguoc: 98765432

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách tìm số đảo ngược trong C rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C trong các bài học tiếp theo.

Video liên quan

Chủ Đề