Kiểm tra số đối xứng trong C# (Palindrome)
Trong bài viết này mình sẽ hướng dẫn các bạn cách kiểm tra một số hoặc một chuỗi có tính đối xứng hay không. Đây là một bài toán thường gặp khi bắt đầu học bất kỳ một ngôn ngữ lập trình nào.
Nếu một số vẫn giữ nguyên ngay cả khi chúng ta đảo ngược các chữ số của nó thì số đó được gọi là số đối xứng. Ví dụ 12321 là một số đối xứng vì nó vẫn giữ nguyên nếu chúng ta đảo ngược các chữ số của nó.
1. Kiểm tra một số có phải là số đối xứng hay không
Để kiểm tra một số có phải là số đối xứng hay không ta sử dụng một vòng lặp while với điều kiện số nhập vào number > 0. Sau đó viết thuật toán để đảo ngược số vừa được nhập vào. So sánh với số ban đầu nếu bằng nhau thì number là số đối xứng, ngược lại là không.
using System; namespace ConsoleApp5 { class Program { static void Main(string[] args) { Console.Write("Nhap vao mot so can kiem tra: "); int number = int.Parse(Console.ReadLine()); int remineder, sum = 0; int temp = number; while (number > 0) { //Chia lấy dư number cho 10 remineder = number % 10; //nhân tổng với 10 rồi cộng thêm phần dư sum = (sum * 10) + remineder; //chia lấy nguyên cho 10 number = number / 10; } if (temp == sum) { Console.WriteLine($"So {temp} la so doi xung."); } else { Console.WriteLine($"So {temp} khong phai so doi xung"); } Console.ReadKey(); } } }
Kết quả:
Bài viết này được đăng tại [free tuts .net]
2. Kiểm tra một chuỗi có phải là chuỗi đối xứng hay không
Để kiểm tra một chuỗi có phải là chuỗi đối xứng hay không cũng tương tự như kiểm tra một số. Ta cũng sẽ so sánh chuỗi ban đầu với chuỗi đảo ngược của nó, nếu bằng nhau thì là đối xứng, ngược lại thì không.
Để làm được điều đó cần sử dụng một vòng lặp for lặp từ vị trí length - 1 (độ dài của chuỗi trừ 1) trờ về 0, với bước nhảy i--. Điều này có nghĩa là ta sẽ in chuỗi đảo ngược của chuỗi ban đầu.
for (int i = name.Length - 1; i >= 0; i--) { reverse += name[i]; }
Full code:
using System; namespace ConsoleApp5 { class Program { static void Main(string[] args) { Console.Write("Nhap vao chuoi can kiem tra : "); string name = Console.ReadLine(); string reverse = string.Empty; for (int i = name.Length - 1; i >= 0; i--) { reverse += name[i]; } if (name == reverse) { Console.WriteLine($"{name} la chuoi doi xung."); } else { Console.WriteLine($"{name} khong phai chuoi doi xung"); } Console.ReadKey(); } } }
Kết quả:
Như vậy là chúng ta đã thực hiện xong hai chương trình để kiểm tra một số và một chuỗi có đối xứng hay không. Các bạn hãy luyện tập thật nhiều để sử dụng nó một cách thành thạo nhé, chúc các bạn thành công !!!