Code Forces 538 B. Quasi Binary(贪心)

来源:互联网 发布:js disabled 无效 编辑:程序博客网 时间:2024/05/22 00:09

Description
给出一个整数n,要求用m最少个数的只由0和1组成的数的和表示n
Input
一个整数n
Output
输出满足条件的数的个数m以及这m个数
Sample Input
9
Sample Output
1 1 1 1 1 1 1 1 1
Solution
贪心,尽量多用1,m就是n的各位数中的最大值
Code

#include<cstdio>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>#include<functional>using namespace std;int n;int main(){    int num[10],num1[10],i=0,j,k,ans,g[10];    memset(g,0,sizeof(g));    scanf("%d",&n);    while(n)    {        num1[i]=n%10;        num[i++]=n%10;        n/=10;    }    sort(num1,num1+i);    ans=num1[i-1];    for(j=0;j<ans;j++)    {        for(k=i-1;k>=0;k--)        {            g[j]*=10;            if(num[k]>0)            {                g[j]+=1;                num[k]--;            }        }    }     printf("%d\n",ans);    for(i=0;i<ans;i++)        printf("%d ",g[i]);    printf("\n");} 
0 0
原创粉丝点击