どの大学も学生に何らかの運動を与える傾向があります。楽しくするために、回文のようなプログラムが生徒たちに与えられます。すべてのプログラミング言語には、回文用のプログラムを作成するための独自の方法があります。多くの人はこの概念をよく知らないかもしれません。心配しないでください。今後の C# での回文の記事では、回文とは正確に何なのか、そしてそれをプログラムで実装する方法について理解できます。
回文が正確に何を意味するのかについて話しましょう。逆にしても同じ数字。
例: 1234321 =>この番号は、逆の順序で書いてみても、同じ番号になります。
その他の例としては、565,757、99899、52125 などがあります。
それでは、正確な計算方法を見てみましょう。
No 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」が回文であるかどうかが表示されます。
上記のプログラムでは、ユーザーからの入力を受け取りました。その入力を parse メソッドで整数に変換しました。 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(); } }
出力:
それでは、上記のプログラムについて話しましょう。ここで私たちが実際に行ったこと。
ここでは 1 つの文字列を取り上げましたが、これは「Madam」に他なりません。次に、その文字列を文字配列に変換しました。 ToCharArray() メソッドを使用して文字配列を作成しました。文字配列を作成した後、その配列に対して reverse メソッドを使用して配列を反転させました。次に、Equals() メソッドを使用して、指定された文字列と反転された文字列の両方を比較しました。このメソッドの出力は、Boolean 型の bool1 という変数に保存されました。
最後に、if-else 条件を使用して、変数 bool1 が true または false に等しいかどうかを確認しました。私たちのプログラムでは、if 条件が実行されます。したがって、出力は「文字列マダムは回文です。」
単語や数字の検索に制限はありません。
それからパズルを作ることができます。条件はたくさんあります。たとえば、1 つの段落全体があり、回文である文字列があるかどうかを確認するように求められた場合などです。
いくつかの例は段落があるように見えますが、文全体自体は回文です。
上の文を逆にすると、再び同じ文が得られます。
例を見てみましょう。以下のコードを確認してください。
コード:
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 中国語 Web サイトの他の関連記事を参照してください。