循环n到m,模拟得到数位,记录最多的4和6的数的4,6出现次数和数本身大小
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int mx = -1;
int ans = 0;
for (int i = n; i <= m; i++) {
String s = Integer.toString(i);
int cnt = 0;
for (char x : s.toCharArray()) {
if (x == '4' || x == '6') {
cnt++;
}
}
if (cnt >= mx) {
mx = cnt;
ans = i;
}
}
System.out.println(ans);
sc.close();
}
}
n , m = map(int, input().split())
mx = -1
ans = 0
for i in range(n , m + 1):
s = str(i)
cnt = 0
for x in s:
if x in ['4' , '6']:
cnt += 1
if cnt >= mx:
mx = cnt
ans = i
print(ans)
#include <iostream>
#include <string>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int mx = -1;
int ans = 0;
for (int i = n; i <= m; i++) {
string s = to_string(i);
int cnt = 0;
for (char x : s) {
if (x == '4' || x == '6') {
cnt++;
}
}
if (cnt >= mx) {
mx = cnt;
ans = i;
}
}
cout << ans << endl;
return 0;
}
OJ会员可以通过点击题目上方《已通过》查看其他通过代码来学习。
给定两个正整数n,m,米小游想要求出n~m中的所有整数的哪个数字中4的数量加上6的数量最多。如果有多个这样的数字,请输出最大的。
例如某一个数字是44624,则它有3个4,1个6,所以4和6的数量之和为4。
输入仅包含一行两个正整数n,m(1≤n≤m1≤106)
输出一行一个整数表示答案
输入
40 50
输出
46
输入
12 13
输出
13
说明
12和13中4的个数和6的个数加起来都是0,所以输出较大的数字13。
输入
100 200
输出
166