下面的代码有风格缺陷加上一两个错误。列出尽可能多的缺陷。
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;
}
Palindrome基本上是一个具有相同值的数字,如果反转,例如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;
}
}
答案 0 :(得分: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;
}