问题描述
一个整数如果由相同的数字构成,则称为完美整数。例如:
1、11、333是完美整数。12、19、101是不完美整数。
现在,你需要计算给定区间 [x, y] 中有多少个整数是完美整数。
程序
public class Main { public static int solution(int x, int y) { int count = 0; for (int i = x; i <= y; i++) { if (isPerfectNumber(i)) { count++; } } return count; }
// 辅助方法:判断一个数是否是完美整数
private static boolean isPerfectNumber(int num) {
String numStr = String.valueOf(num);
char firstChar = numStr.charAt(0);
for (char c : numStr.toCharArray()) {
if (c != firstChar) {
return false;
}
}
return true;
}
public static void main(String[] args) {
System.out.println(solution(1, 10) == 9);
System.out.println(solution(2, 22) == 10);
}
}