对于原字符串的每个位置,如果该位置为x,那么我们需要用x个字符串在该位置置1。那么答案就是这个字符串中最大的那个数字。
C++
#include<bits/stdc++.h>
using namespace std;
int main() {
    string num;
    cin >> num;
    int ans = 0;
    for (int i = 0; i < num.size(); i++) {
        ans = max(ans, num[i] - '0');
    }
    cout << ans << endl;
    return 0;
}
java
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String num = scanner.next();
        int ans = 0;
        for (int i = 0; i < num.length(); i++) {
            ans = Math.max(ans, (num.charAt(i) - '0'));
        }
        System.out.println(ans);
    }
}
python
num = input()
ans = 0
for digit in num:
    ans = max(ans, int(digit))
print(ans)
        给定一个十进制整数,请问最少由多少个只包含0或1的十进制整数相加得到。即每位都是0或1,如100、10101。
输入一个整数n(1≤n≤10100000)。
输出一个整数,表示最少需要几个这样的整数。
输入
10000000
输出
1