デザインのアイデア:
- 分析と題した分析の要件が回文特性数は、前面から背面に読み込まれ、バックフロントには同じから読み出され、回文。たとえば、次のようにabccba。入力文字の長さが1または0である場合に加えて、システムは、回文と判定する。(専用ケース)
- 先生は、私たちが最初の再帰関数は、条件を停止している必要があり、再帰関数を使用するように求め、つまり、いくつかの特別な場合または0または1再帰ストップ運転の下で、加えて、一般的なもあります。
- 特定の符号化および一般条件分類、および再帰を適切な位置で停止されたか否かを判定する
プログラムのソースコード:
1 インポートjava.util.Scanner; 2 。3 パブリック クラスTestPalindrome { 4 。5 パブリック 静的スキャナSC = NULL ; 6 静的 int型 B = 0 ; 7 / ** 8 *再帰的にはパリンドロームはパリンドロームであるか否かを判定する:AAA AAAの前後に読み取りまたは前後に同じから読み取られる 。9 * @param 10 * @paramのB 11 * @return 12れる* / 13はある公共の静的文字列ジャッジ(文字列、int型B){ 14 15 IF(a.length()== 0 || a.length()== || 1(a.length()/ 2)|| B == == B(a.length()+ 1)/ 2 ){ 16 リターン "!パリンドローム" ; 17 } 18である 他{ 19 // a.charAt(。)0からカウントし、最大ビットa.length() - 1 20は IF(a.charAt(B) != a.charAt(a.length() - 1- B)) 21は 、{ 22が 戻り "パリンドロームではない!" ; 23である } 他{ 24 B ++ ; 25 リターン ジャッジ(A、B); 26である } 27 } 28 } 29 30 31れる パブリック 静的 ボイドメイン(文字列[]引数){ 32 のSystem.out.println( "文字列を入力してください" ); 33は、 SC = 新しい新しいスキャナ(System.in); 34である 文字列C = sc.next( ); 35 B = 0 ; 36 のSystem.out.println(ジャッジ(C、B)); 37 38である } 39 40 }
テストを実行します。
プログラミングの概要分析:
私は回文の考え方が間違っているので、理解して、このプログラムは、パリンドローム解析、プログラミングプロセスの数を決定するためのものである、ことができないプログラミングが生じ、これが最大の問題です。プログラミングのために、私はまた、作った場合でも、まず、解決すべき問題を理解しておく必要があり、実際に読むために、それを理解して、プログラミングに行くのではなく、それを達成するためのコードと、少しの知識の場合にプログラムしていきますので、これは、要件を満たしていません。
方法は、例えば、コンパイルプロセスでStringクラスを使用する:のcharAt()メソッドは、指定されたインデックスのchar値を返します。つまり、char型を返します。長さ()関数は、文字列の長さを返します。