每所学院或大学都倾向于给学生一些锻炼。为了好玩,给学生提供了诸如回文的程序。每种编程语言都有自己的回文程序编写方法。许多人可能熟悉也可能不熟悉这个概念。不用担心。在接下来的 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中文网其他相关文章!