题意 把一个整数n拆成几个数,要求每个数的每位只能是0或1
考虑n的每一位,a1a2a3a4...an 对于ai,需要ai个数存放ai,所以需要max(a1,a2...an)个数

#include<iostream>
using namespace std;
int pow(int a,int b)
{
    int ans=1;
    while(b--)
        ans*=a;
    return ans;
}
int a[100010];
int main()
{
    int n,f=0,maxx=0;
    cin>>n;
    while(n)
    {
        int num=n%10;
        for(int i=1;i<=num;i++)a[i]+=pow(10,f);
        f++;
        n/=10;
        maxx=max(maxx,num);
    }
    cout<<maxx<<endl;
    for(int i=1;i<=maxx;i++)cout<<a[i]<<' ';
    cout<<endl;
}