用java写:我们认为一个数字是7好数,当且仅当它的开头和结尾都是7 给定一个正整数n,请问[1,n]中有多少个7好数。要求:用户自定义输入一个n,返回输出7好数的个数
时间: 2024-10-28 11:07:04 浏览: 95
在 Java 中,你可以使用双指针技巧以及循环来解决这个问题。首先,我们需要创建一个函数来判断一个数字是否为"7好数",然后遍历给定范围内的所有数字并计数。
下面是一个简单的 Java 函数实现:
```java
import java.util.Scanner;
public class SevenGoodNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个正整数 n:");
int n = scanner.nextInt();
int count = countSevenGoodNumbers(n);
System.out.println("在 [1," + n + "] 范围内有 " + count + " 个 7好数。");
}
public static int countSevenGoodNumbers(int n) {
int start = 0;
int end = 1;
int count = 0;
// 循环直到 end 小于等于 n
while (end <= n) {
String number = String.valueOf(start); // 转换为字符串便于操作
if (number.charAt(0) == '7' && number.charAt(number.length() - 1) == '7') { // 判断是否为 7好数
count++;
}
start++; // 移动开始指针
end *= 10; // 移动结束指针到下一个可能的数字
}
return count;
}
}
```
在这个程序中,我们初始化两个指针 `start` 和 `end` 分别代表当前考虑的数的首位和全部位。然后每次迭代,我们会检查 `end` 是否为 7 好数,并增加计数器。最后返回计数器值即为满足条件的 7 好数的数量。
阅读全文