循环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