CodeForces 538B想法题
2017-08-21 19:36
204 查看
A number is called quasibinary if its decimal representation contains only digits 0 or 1. For example, numbers 0, 1, 101, 110011 — are quasibinary and numbers 2, 12, 900 are not.
You are given a positive integer n. Represent it as a sum of minimum number of quasibinary numbers.
Input
The first line contains a single integer n (1 ≤ n ≤ 106).
Output
In the first line print a single integer k — the minimum number of numbers in the representation of number n as a sum of quasibinary numbers.
In the second line print k numbers — the elements of the sum. All these numbers should be quasibinary according to the definition above, their sum should equal n. Do not have to print the leading zeroes in the numbers. The order of numbers doesn't matter. If
there are multiple possible representations, you are allowed to print any of them.
Example
Input
9
Output
9
1 1 1 1 1 1 1 1 1
Input
32
Output
3
10 11 11
【题意】
给你一个数n,问最少能用多少个由0和1组成的数相加得到n。
要求输出最少需要几个数,以及这几个数分别是什么。
一眼看出解法然而不知道怎么下手写代码,删删改改写了很久也是很糟心了。。
【解法】
找出n这个数各位中最大的数就是个数,怎么输出各个数就直接上代码吧,虽然觉得自己写的有点蠢蠢的。
You are given a positive integer n. Represent it as a sum of minimum number of quasibinary numbers.
Input
The first line contains a single integer n (1 ≤ n ≤ 106).
Output
In the first line print a single integer k — the minimum number of numbers in the representation of number n as a sum of quasibinary numbers.
In the second line print k numbers — the elements of the sum. All these numbers should be quasibinary according to the definition above, their sum should equal n. Do not have to print the leading zeroes in the numbers. The order of numbers doesn't matter. If
there are multiple possible representations, you are allowed to print any of them.
Example
Input
9
Output
9
1 1 1 1 1 1 1 1 1
Input
32
Output
3
10 11 11
【题意】
给你一个数n,问最少能用多少个由0和1组成的数相加得到n。
要求输出最少需要几个数,以及这几个数分别是什么。
一眼看出解法然而不知道怎么下手写代码,删删改改写了很久也是很糟心了。。
【解法】
找出n这个数各位中最大的数就是个数,怎么输出各个数就直接上代码吧,虽然觉得自己写的有点蠢蠢的。
#include<cstdio> #include<cstring> char s[10]; char s2[10]; int b[15]; int main(){ scanf("%s",s); int l=strlen(s); int f=0; while(1){ int max=0; for(int i=0;i<l;i++){//找到最大的 if(s[i]-'0'>max) max=s[i]-'0'; } if(!f) printf("%d",max); if(!max) break; if(!f) printf("\n"); if(f) printf(" "); f=1; int pos=0; for(int i=0;i<l;i++){ if(s[i]-'0'==max){ b[pos++]=1; } else{ b[pos++]=0; } } for(int i=0;i<l;i++){ if(s[i]-'0'==max) s[i]--; } int flag=0; for(int i=0;i<l;i++){ if(!b[i]){ if(flag) printf("0"); } else{ printf("1"); flag=1; } } } printf("\n"); return 0; }
相关文章推荐
- CodeForces 538B想法题
- Codeforces 796C 想法
- codeForces 509E 想法题
- Codeforces 599C Day at the Beach(想法题,排序)
- Codeforces_414C:Mashmokh_and_Reverse_Operation(想法题)
- Codeforces 229C 想法
- CodeForces 475B Strongly Connected City[想法]
- CodeForces - 948E Picking Strings [想法]
- Codeforces 602B Approximating a Constant Range(想法题)
- Codeforces 733D 立方体(想法题)
- Codeforces 559B Equivalent Strings 想法题
- Codeforces 509E 想法
- CodeForces 757 C 想法题
- codeforces 3C Tic-tac-toe (想法题)
- Codeforces_509E:Pretty_Song(想法题)
- Codeforces 776C 想法
- codeforces 11 B.Jumping Jack 想法题
- codeforces 584E Anton and Ira [想法题]
- Codeforces 788B 想法+并查集
- CodeForces 305A Strange Addition(想法题)