0

以下のコードには、文体上の欠陥と 1 つまたは 2 つのバグがあります。できるだけ多くの欠陥を挙げてください。

public int palindromeCount (int start, int finish) {
   int k = start;
   int returnVal = 0;
    while (k<finish) {
      int temp = k;
      int r = 0;
      while (temp > 0) {
         r = 10 * r + temp%10;
         temp = temp/10;
      }
      if (r == k) {
         returnVal++;
      }
      k++;
   }
   return returnVal;
}

回文は基本的に、11 のように反転しても同じ値を持つ数値です。ここのコードは、範囲をブラウズし、最終的にその範囲内の回文の量で終了する必要があります。ループを学ぶためにこれをやっています。

ここに私の進歩があります:

public class Counter{

   public Counter(){
  }

   public int palindromeCount (int start, int finish) {
      int returnVal = 0;
      int temp = start;

      while (start < finish) {
         int reverse = 0;

         while (temp != 0) {
           reverse = 10 * reverse + temp % 10;
            temp = temp/10;
         }

         if (temp == start) {
            returnVal = returnVal + 1;
         }
         start = start + 1;
      }
      return returnVal;
   }
}
4

1 に答える 1

0

以前に投稿したと思いますが、テストした限りではうまくいきます。

public static int palindromeCount(int start, int finish) {
    int k = start;
    int returnVal = 0;
    while (k <= finish) { // Changed to <= to consider "finish" too
        int temp = k;
        int r = 0;
        while (temp > 0) {
            r = 10 * r + temp % 10;
            temp = temp / 10;
        }
        if (r == k) {
            returnVal++;
        }
        k++;
    }
    return returnVal;
}
于 2013-10-24T05:23:20.733 に答える