认为一个数是好数,当且仅当他的十进制位数连号,给我完整的 代码找出1到N中有几个好数,用java
时间: 2024-10-29 20:09:57 浏览: 28
在Java中,我们可以编写一个循环来检查从1到给定整数N的所有数字,看看它们是否满足"连续位数"的条件。以下是一个简单的示例代码,用于计算并返回1到N之间的好数的数量:
```java
public class GoodNumbers {
public static void main(String[] args) {
int n = 100; // 替换为你想要查找的好数范围上限
int count = findGoodNumbers(n);
System.out.println("在1到"N + "范围内,有" + count + "个好数。");
}
public static int findGoodNumbers(int limit) {
int count = 0;
for (int i = 1; i <= limit; i++) {
String numberStr = Integer.toString(i); // 将数字转换成字符串便于比较
if (areConsecutiveChars(numberStr)) { // 检查每一位是否连续
count++;
}
}
return count;
}
private static boolean areConsecutiveChars(String str) {
char prevChar = '0'; // 初始化前一个字符为0
for (char c : str.toCharArray()) {
if (c != prevChar + 1) { // 如果当前字符不是前一个加一
return false; // 中断循环,不符合条件
}
prevChar = c; // 更新前一个字符
}
return true; // 全部连续则返回true
}
}
```
这个程序首先定义了一个`findGoodNumbers`函数,它遍历1到N之间的所有整数,将每个数字转换为字符串,然后检查每个字符串中的字符是否连续。如果找到一个好数,计数器就增加1。最后,程序打印出好数的数量。
注意,你需要根据实际情况更改`main`方法中的`n`变量,以便搜索不同范围内的好数。
阅读全文