题意 把一个整数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; }