Quasi Binary

思路

对答案k还是挺显然的,等于n的最大数位,
能想到这一点就简单了,只要存下所有的数位,然后一位一位模拟即可。

代码

/*
  Author : lifehappy
*/
#include <bits/stdc++.h>

using namespace std;

int num[10], m, n, tot;

int main() {
    // freopen("in.txt", "r", stdin);
    // freopen("out.txt", "w", stdout);
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    cin >> n;
    while(n) {
        m = max(m, n % 10);
        num[tot++] = n % 10;
        n /= 10;
    }
    cout << m << "\n";
    for(int i = 1; i <= m; i++) {
        int ans = 0;
        for(int j = tot - 1; j >= 0; j--) {
            ans = ans * 10 + (num[j]-- > 0);
        }
        cout << ans << " \n"[i == m];
    }
    return 0;
}