每所學院或大學都傾向於給學生一些運動。為了好玩,給學生提供了諸如回文的程序。每種程式語言都有自己的回文程式編寫方法。許多人可能熟悉也可能不熟悉這個概念。不用擔心。在接下來的 C# 回文文章中,您將了解回文到底是什麼以及我們如何以程式設計方式實現它。
我們來談談回文到底是什麼意思。任何數字,即使我們把它顛倒過來,也一樣。
例如:1234321 =>即使您嘗試以相反的順序書寫,這個數字也會給您相同的編號。
更多例子有 565,757, 99899, 52125 等
現在我們來看看具體的計算方法。
假設我們有 434。
現在,讓我們反轉它,我們只得到 434。
回文最有趣的是,如果我們將它們相加,我們將得到一個新的回文編號。
例如:214 + 412 = 626(626只不過是回文數。)
這只意味著,如果我們沒有向前和向後遍歷,那麼我們也會得到相同的編號。
有一些方法可以檢查不同語言中的回文。這裡我們將使用 C# 來檢查。
這裡使用的簡單邏輯向後和向前遍歷輸入的序列,並且給定的數字或字串與初始的對應輸出相同,稱為回文。
仔細看下面的程序,它接受使用者的輸入並檢查它是否是回文。一旦你了解了回文數的概念,辨識起來就非常簡單了。
代碼:
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"); } }
輸出:
要求使用者輸入任意編號的輸出。
現在輸入no後,會顯示no是否為回文。
在上面的程式中,我們接受了使用者的輸入。我們透過解析方法將該輸入轉換為整數。在 while 迴圈的幫助下,我們反轉了 no 並與原來的 no 進行了檢查。
如果使用者提供的 no 和我們逆向的 no 相同,那麼這個 no 就是回文。在我們的例子中,我們取了 212。我們得到的給定數字的輸出是回文。
到目前為止,我們只檢查了回文數。但讓我告訴你,我們也可以用字串來檢查這一點。因為某些字串的組合也具有回文性質。
女士,我們把這個字串反轉一下,我們會找到相同的字串。
透過程式設計方式看到會很好。
代碼:
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(); } }
輸出:
現在我們來談談上面的程式。我們實際上在這裡做了什麼。
我們這裡拿了一條繩子,那隻是「女士」。然後我們將該字串轉換為字元數組。我們使用 ToCharArray() 方法來建立字元陣列。建立字元數組後,我們對該數組使用reverse方法使其反轉。然後我們藉助 Equals() 方法比較給定的字串和反轉的字串。我們將此方法的輸出儲存在名為 bool1 的變數中,該變數的類型為布林值。
現在,最後在 if-else 條件的幫助下,我們檢查了變數 bool1 是否等於 true 或 false。在我們的程式中,if 條件被執行。因此輸出是「字串 Madam 是回文。」
查找單字或數字沒有限制。
你可以用它來製作拼圖。有很多條件,例如你有一個完整的段落,有人要求你檢查是否有任何字串是回文。
有些例子就像有一個段落,但整個句子本身就是一個回文。
如果我們顛倒上面的句子,那麼我們會再次得到相同的句子。
舉個例子;請看以下程式碼。
代碼:
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)); } } }
輸出:
因此,正如我們所討論的,整個句子本身就是一個回文。如果你也顛倒它,它會給你同樣的句子。
在上面的程式中,我們遍歷句子直到最後。然後我們將其改為小寫並對照給定的句子進行檢查。自己寫程式碼來嘗試這個程式;那麼只有你才能理解這些程式的實際流程。
像回文這樣的技巧很多。我們已經看到了刺和數,它們本質上是回文。透過一些步驟,我們多麼輕鬆地實現了這個目標。
以上是C# 中的回文的詳細內容。更多資訊請關注PHP中文網其他相關文章!