数字8最多的那个数为幸运数。输入n和n个整数,求这n个整数中的幸运数。在主函数中调用ndigit()方法,判断某个整数n中数字8的个数。如果有多个幸运数,则输出第一个幸运数,如果所有的数中都没有数字8,则输出“NO”。方法static int ndigit(int n,int k)的功能:统计整数n中数字k的个数。
时间: 2023-12-03 13:42:34 浏览: 37
这道题可以使用一个循环来遍历输入的 n 个整数,对于每个整数,使用 ndigit() 方法判断其中数字8的个数,如果该整数中数字8的个数大于当前最大值,则更新最大值和幸运数。如果所有的整数中都没有数字8,则输出“NO”。
以下是完整的Java代码实现:
```java
import java.util.Scanner;
public class LuckyNumber {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int maxCount = 0;
int luckyNumber = -1;
for (int i = 0; i < n; i++) {
int num = input.nextInt();
int count = ndigit(num, 8);
if (count > maxCount) {
maxCount = count;
luckyNumber = num;
}
}
if (maxCount == 0) {
System.out.println("NO");
} else {
System.out.println(luckyNumber);
}
}
// 统计整数n中数字k的个数
static int ndigit(int n, int k) {
int count = 0;
while (n > 0) {
if (n % 10 == k) {
count++;
}
n /= 10;
}
return count;
}
}
```