Viết giải thuật để kiểm tra tính đối xứng của một danh sách

Đề bài: Viết chương trình sử dụng ngôn ngữ lập trình Python nhập vào một xâu bất kỳ. Kiểm tra xâu vừa nhập có phải là xâu đối xứng hay không. Thông báo kết quả ra màn hình.


Yêu cầu kiến thức:

  • Nắm được cách tổ chức chương trình, phân chia thành các hàm
  • Nắm được cách phân tích và thiết kế chương trình, cách sử dụng vòng lặp trong Python

Gợi ý: Xâu B là xâu đối xứng của xâu A thì khi đảo ngược xâu B thì xâu B giống xâu A.

Code tham khảo dưới viết trên Python ver 3.8:

# Ho ten: Hoang Van Tuan # Website: timoday.edu.vn # Xay dung ham def Xau_doi_xung(str): """ :param str: string :return: True if symmetrical, False if not symmetrical """ if str[::-1] == str: return True return False # Nhap du lieu str = input("Nhap vao xau bat ky: ") if Xau_doi_xung(str) is True: print("Xau tren doi xung!") else: print("Xau tren khong doi xung!")


Kết luận:

  • Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây

Bài viết đăng tại: https://laptrinhcanban.com

Hướng dẫn cách kiểm tra số đối xứng trong C++. Bạn sẽ học được cách tạo hàm kiểm tra số đối xứng trong C++ sau bài học này.

Số đối xứng trong C++

Chúng ta đều biết trong toán học số nguyên n gọi là số đối xứng nếu đọc từ trái qua phải, hay từ phải qua trái đều được số giống nhau. Ví dụ: 11,121,101 là các số đối xứng.

Khái niệm số đối xứng trong C++ cũng giống như trên. Chúng ta coi một số là số đối xứng trong C++ nếu như đọc từ trái qua phải, hay từ phải qua trái số đó đều được số giống nhau.

Viết giải thuật để kiểm tra tính đối xứng của một danh sách

Đây là chìa khóa thứ giúp chúng ta có thể tìm được số đối xứng trong C++.

Một số được coi là số đối xứng trong C++ nếu như đọc từ trái qua phải, hay từ phải qua trái số đó đều được số giống nhau. Bởi vậy để kiểm tra một số có phải là số đối xứng hay không, chúng ta đơn giản chỉ cần đảo ngược số này và kiểm tra số thu về có bằng với số đã cho hay không là xong.

Trong C++ không có hàm cài sẵn nào để đảo ngược một số chỉ định cả, bởi vậy chúng ta cần dùng tới hàm tự tạo reverse() mà Kiyoshi đã giới thiệu trong bài sau:

  • Xem thêm: Tìm số đảo ngược trong C++

Và chúng ta tạo hàm kiểm tra số đối xứng 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 symmetrical_num(int n){



int flag =0;
if (reverse_num(n) == n) flag = 1;
return flag;
}

Chúng ta có thể gọi hàm này và sử dụng trong chương trình nhập n kiểm tra n có phải số đối xứng không trong C++ như sau:


using namespace std;


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


int symmetrical_num(int n){



int flag =0;
if (reverse_num(n) == n) flag = 1;
return flag;
}

int main(){
int n;

cout << (">> Nhap so tu nhien= ");
cin >> n;

int check = symmetrical_num(n);

if( check == 1 ) cout << n << " la so doi xung";
else cout << n << " khong phai la la so doi xung";
return 0;
}

Màn hình nhập liệu và kết quả kiểm tra số đối xứng trong C++ sẽ như sau:

>> Nhap so tu nhien= 1234
1234 khong phai la so doi xung

>> Nhap so tu nhien= 12321
12321 la so doi xung

>> Nhap so tu nhien= 12344321
12344321 la so doi xung

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách tìm số đối xứng 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.

Số nguyên n gọi là số đối xứng nếu đọc từ trái qua phải, hay từ phải qua trái đều được số giống nhau.

Ví dụ: 11,121,101 là các số đối xứng.

Bạn đang xem: Số đối xứng là gì

Thuật toán

Tìm số đảo của số nguyên vừa nhậpSo sánh số đảo và số nguyên đóLà số đối xứng nếu 2 số bằng nhau và ngược lại

Bài tậpmang tính tham khảo, hỗ trợ các bạn làm quen và luyện tập với các bàn toán lập trình cơ bản trong C++.

Kteam khuyến khích các bạn tự phân tích đề bài > tự giải bài toán > debug để kiểm tra kết quả và fix lỗi trong quá trình giải. Sau đó, bạn có thể tham khảo source code mẫu để hoàn chỉnh bài tập.

Để được hỗ trợ tốt nhất, bạn có thể đặt câu hỏi ở phần bình luận bên dưới bài viết hoặc ở mục Hỏi & Đáp.

Source code tham khảo

Header.h

// Header.h#ifndef _HEADER_#define _HEADER_int timSoDao(int);bool laSoDoiXung(int);#endif // _HEADER_Source.cpp

// Source.cpp#include #include “Header.h”using namespace std;int main(){int nInput;cout > nInput;// Kiểm tra là số đối xứngif (laSoDoiXung(nInput)){cout return (n == timSoDao(n));}

Bạn có thể củng cố kiến thức C++ từ khóa Lập trình C++ cơ bản.

Xem thêm: Thu Âm Karaoke Hướng Dẫn Thu Âm Karaoke Trên Youtube, Thu Âm Karaoke Hướng Dẫn Cụ Thể

Hoặc tìm hiểu thêm các bài tập khác trong khóa Bài toán kinh điển trong lập trình

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên “Luyện tập –Thử thách –Không ngại khó

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện httl.com.vn/wiki.vn.com để nhận được sự hỗ trợ từ cộng đồng.

Viết giải thuật để kiểm tra tính đối xứng của một danh sách

CỘNG ĐỒNG HỎI ĐÁP httl.com.vn/wiki.vn.COM

GROUP THẢO LUẬN FACEBOOK

Nội dung bài viết

Tác giả/Dịch giả

Kteam

Khóa học

Bài toán kinh điển trong lập trình

Tổng hợp những bài toán trong lập trình, ngẫu nhiên từ cơ bản đến nâng cao.

Đánh giá

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản httl.com.vn/wiki.vn.

Xem thêm: Giải Mã Tuyệt Kỹ Võ Công Nhất Dương Chỉ Là Gì, Nhất Dương Chỉ

Đăng nhập

#include

intmain()

{

intn,sodoi=0;

printf(“enteranumber:”);

scanf(“%d”,&n);

sodoi=n%10;

inti=0;

intn1=n/10;

while(n1>0)

{

i=n1%10;

sodoi=sodoi*10+i;

n1=n1/10;

}

if(sodoi==n)

{

printf(“sodoixung”);

}

else

{

printf(“khongdoixung”);

}

return0;

}

0 0 Trả lời Báo cáo

Code C#

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace SoDoiXung{ class Program { static void Main(string args) { Console.OutputEncoding = System.Text.Encoding.UTF8; Console.Write(“Mời bạn nhập số: “); string str1 = Console.ReadLine(); int _soDau = Convert.ToInt32(str1); int SoDAu = _soDau; int soDao = 0; while (_soDau!=0) { int x = _soDau % 10; _soDau = _soDau/10; soDao = (soDao * 10) + x; } if (soDao == SoDAu) { Console.WriteLine(“Đây là số đối xứng!”); } else { Console.WriteLine(“Sai”); } Console.ReadLine(); } }}

0 0 Trả lời Báo cáo

number = int(input(“nhap vao so nguyen:”))r = 0number1 = numberrebmun = 0while number > 0: r = number % 10 rebmun = rebmun*10 + r number /= 10if rebmun == number1: print rebmun,”la so doi xung”else: print number1,”khong la so doi xung”python

0 0 Trả lời Báo cáo

#include #include using namespace std;#define MAX 100bool checkPalidrome(char *str);int main(){char str;cout > str;checkPalidrome(str);system(“pause”);return 0;}bool checkPalidrome(char *str){int lenght = strlen(str);for (int i = 0; i

0 0 Trả lời Báo cáo Xem tất cả 1 câu trả lời

Python

def sodoixung(_n): _rev = 0 _rem = 0 while _n>0: _rem = _n % 10 _rev = _rev*10 + _rem _n = _n // 10 return _revdef kiemtradoixung(_n): if _n == sodoixung(_n): print(“Đây là số đối xứng”) else: print(“Đây không là số đối xứng”)kiemtradoixung(1123211)

0 0 Trả lời Báo cáo Danh sách bài giảng Nội dung Không có video. Danh sách bài giảng

Đánh giá và Nhận xét

Thông tin Kteam

Đóng góp từ cộng đồng

Lĩnh vực

Khoá học

Cộng đồng

Liên kết

Kết nối với Kteam

Kết nối với Kteam qua mạng xã hội

Chứng nhận

Yêu cầu đăng nhập

Để sử dụng tính năng này, Bạn cần đăng nhập bằng tài khoản httl.com.vn/wiki.vn.

Đăng nhập AD BLOCKER DETECTED

Để xem được nội dung và giúp Kteam duy trì hoạt động. Bạn vui lòng tắt Adblock trên website www.httl.com.vn/wiki.vn nhé!

Chuyên mục: Kiến thức