Rumah > Artikel > pembangunan bahagian belakang > Palindrom dalam C#
Setiap kolej atau universiti cenderung untuk memberi sedikit senaman kepada pelajarnya. Untuk menggembirakan, program seperti palindrom diberikan kepada pelajar. Setiap bahasa pengaturcaraan mempunyai cara tersendiri untuk menulis program untuk palindrom. Ramai orang mungkin biasa atau tidak dengan konsep ini. Jangan risau. Dalam artikel palindrom yang akan datang dalam c#, anda akan memahami apa sebenarnya palindrom dan bagaimana kami boleh melaksanakannya secara pemrograman.
Mari kita bincangkan tentang maksud palindrom sebenarnya. Mana-mana nombor yang sama walaupun kita buat terbalik.
Cth: 1234321 => Nombor ini, walaupun anda cuba menulis dalam susunan terbalik, memberikan anda no yang sama.
Lebih banyak contoh ialah 565,757, 99899, 52125 dll.
Sekarang, mari lihat Kaedah yang tepat untuk mengiranya.
Andaikan kita mempunyai no 434.
Sekarang, mari kita terbalikkan, dan kita mendapat 434 sahaja.
Perkara paling kelakar tentang palindrom ialah jika kita menambahnya, kita akan mendapat no palindrom baharu.
Cth: 214 + 412 = 626 (626 hanyalah palindrom no.)
Ini bermakna, jika kita tidak melalui ke hadapan dan ke belakang, maka kita juga mendapat tidak yang sama.
Terdapat cara tertentu untuk menyemak palindrom dalam bahasa yang berbeza. Di sini kita akan menyemak dengan C#.
Logik mudah yang digunakan di sini merentasi rangkaian input ke belakang dan ke hadapan, dan nombor atau rentetan yang diberikan adalah sama dengan awalan daripada output sepadan yang dipanggil palindrom.
Lihat program di bawah dengan teliti, yang mengambil input daripada pengguna dan menyemak sama ada ia palindrom atau tidak. Ini sangat mudah untuk dikenal pasti setelah anda mengetahui konsep palindrom.
Kod:
using System; public class IsPalindrome { public static void Main(string[] args) { int no,total=0,t,rev; Console.Write("Please provide the no: "); no = int.Parse(Console.ReadLine()); t=no; while(no>0) { rev=no%10; total=(total*10)+rev; no=no/10; } if(t==total) Console.Write("The given number is Palindrome."); else Console.Write("The given number is not Palindrome"); } }
Output:
Output yang meminta pengguna memasukkan sebarang no.
Kini, selepas memasukkan no, ia menunjukkan tidak itu palindrom atau bukan.
Dalam program di atas, kami mengambil input daripada pengguna. Kami menukar input itu kepada integer dengan kaedah parse. Dengan bantuan gelung sementara, kami membalikkan no dan menyemaknya dengan no asal.
Jika no yang diberikan oleh pengguna dan no yang kita reverser adalah sama, maka no itu adalah palindrom. Di sini dalam kes kami, kami mengambil 212. Dan output yang kami dapat sebagai nombor yang diberikan ialah palindrom.
Sehingga kini, kami hanya menyemak nombor yang merupakan palindrom. Tetapi izinkan saya memberitahu anda bahawa kita boleh menyemak ini dengan rentetan juga. Kerana beberapa gabungan rentetan juga mempunyai sifat seperti palindrom.
Mari kita ambil rentetan ini, puan dan terbalikkannya, dan kita akan temui rentetan yang sama.
Ia bagus untuk dilihat secara pemrograman.
Kod:
using System; public class Palindrome { public static void Main(string[] args) { string inputStr, r; inputStr = "Madam"; char[] letter = inputStr.ToCharArray(); Array.Reverse(letter); r = new string(letter); bool bool1 = inputStr.Equals(r, StringComparison.OrdinalIgnoreCase); if (bool1 == true) { Console.WriteLine("This string " + inputStr + " is a Palindrome!"); } else { Console.WriteLine("This string " + inputStr + " is not a Palindrome!"); } Console.ReadLine(); } }
Output:
Sekarang, Mari kita bincangkan tentang program di atas. Apa yang kami lakukan sebenarnya di sini.
Kami mengambil satu rentetan di sini, yang tidak lain hanyalah "Puan". Kemudian kami menukar rentetan itu kepada tatasusunan aksara. Kami menggunakan kaedah ToCharArray() untuk membuat tatasusunan aksara. Selepas mencipta tatasusunan aksara, kami telah menggunakan kaedah terbalik pada tatasusunan itu untuk menjadikannya terbalik. Kemudian kami membandingkan kedua-dua rentetan yang diberikan dan rentetan terbalik dengan bantuan kaedah Equals(). Kami menyimpan dalam output kaedah ini dalam pembolehubah yang dipanggil bool1, iaitu jenis Boolean.
Kini, pada akhirnya, dengan bantuan keadaan if-else, kami menyemak pembolehubah bool1 adalah sama dengan benar atau palsu. Dalam program kami, syarat if akan dilaksanakan. Oleh itu, outputnya ialah "Rentetan Puan ialah palindrom."
Tiada had untuk mencari perkataan atau nombor.
Anda boleh membuat teka-teki daripadanya. Terdapat banyak syarat, seperti jika anda mempunyai satu perenggan keseluruhan dan seseorang meminta anda menyemak sama ada terdapat sebarang rentetan yang merupakan palindrom atau tidak.
Sesetengah contoh adalah seperti mereka mempunyai perenggan, tetapi keseluruhan ayat itu sendiri adalah palindrom.
Jika kita terbalikkan ayat di atas, maka kita akan mendapat ayat yang sama semula.
Mari kita ambil contoh; Sila lihat kod di bawah.
Kod:
using System; public class Palindrome { public static bool IsPalindrome(string value) { int x = 0; int y = value.Length - 1; while (true) { if (x > y) { return true; } char i = value[x]; char j = value[y]; // Scan forward for a while invalid. while (!char.IsLetterOrDigit(i)) { x++; if (x > y) { return true; } i = value[x]; } while (!char.IsLetterOrDigit(j)) { y--; if (x > y) { return true; } j = value[y]; } if (char.ToLower(i) != char.ToLower(j)) { return false; } x++; y--; } } public static void Main() { string[] ary = { "Was it a car or a cat I saw?" }; foreach (string value in ary) { Console.WriteLine("{0} = {1}", value, IsPalindrome(value)); } } }
Output:
Oleh itu, seperti yang kita bincangkan, keseluruhan ayat itu sendiri adalah palindrom. Jika anda membalikkannya juga, ia akan memberikan anda ayat yang sama.
Dalam program di atas, kami merentasi ayat sehingga yang terakhir. Kemudian kami membuat huruf kecil dan menyemak dengan ayat yang diberikan. Cuba program ini dengan mengekod sendiri; maka hanya anda yang boleh memahami aliran sebenar program ini.
Terdapat banyak helah seperti palindrom. Kami telah melihat sengatan dan nombor, yang bersifat palindrom. Betapa mudahnya, dengan beberapa langkah, kami mencapainya.
Atas ialah kandungan terperinci Palindrom dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!