题意 把一个整数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;
}
京公网安备 11010502036488号