B. Quasi Binary
2015-07-21 20:20
155 查看
开启博客园
记录codeforces程序
这个题目很简单
一个数能被最少的只包含0 ,1的数字和
如:9 = 1+1+1+1+1+1+1+1+1
10 =10
12 =11+ 1
求得是最少个数的整数和
对于任意的一个数,小于等于这个数的最大的只有0 1序列组成的数,满足:原数位置是0,这个数位置是0,原数位置非0,这个数位置是1.
根据这个规则,就可以求出所有的数。
输入:
n
输出:
k
k个数
Java程序如下:
Python程序:
记录codeforces程序
这个题目很简单
一个数能被最少的只包含0 ,1的数字和
如:9 = 1+1+1+1+1+1+1+1+1
10 =10
12 =11+ 1
求得是最少个数的整数和
对于任意的一个数,小于等于这个数的最大的只有0 1序列组成的数,满足:原数位置是0,这个数位置是0,原数位置非0,这个数位置是1.
根据这个规则,就可以求出所有的数。
输入:
n
输出:
k
k个数
Java程序如下:
import java.util.Scanner; public class B538 { public static void run(){ Scanner in = new Scanner(System.in); String digit = in.next(); int count = 0; String[] array = new String[1000]; while(Integer.valueOf(digit)!=0){ String str = ""; for(int i = 0;i<digit.length();i++) if(digit.charAt(i)!='0') str = str+"1"; else str = str + "0" ; digit = (Integer.valueOf(digit) - Integer.valueOf(str))+""; array[count] = str; count++; } System.out.println(count); for(int i=0;i<count;i++) System.out.print(array[i]+" "); } public static void main(String[] args){ run(); } }
Python程序:
n = int(raw_input()) 9 res=[] while n>0: s=str(n) now = 0 for i in xrange(0,len(s)): if int(s[i])>0: now+ 10**(len(s)-i-1) res.append(now) n-=now print len(res) for i in res: print i,
相关文章推荐
- 算法导论 第三十一章:数论
- #淘宝#复制分享宝贝内容,打开淘宝APP,自动弹出宝贝提示信息
- Cocos2d-x利用jni调用java层代码
- oracle 高级队列
- LeetCode#111 Minimum Depth of Binary Tree
- 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(六)Picker View视图 学习笔记
- 【Treap】poj1442 Black Box
- 修改UIImage大小
- select实现输入模糊匹配与选择双重功能
- FirstAFNetWorking
- HDU 2818 - Building Block
- 活动目录(一)创建根域
- Tomcat服务器讲解
- lx-0721-1008不要62
- UIButton的一些设置
- linux ln 命令使用参数详解(ln -s 软链接)
- android 之 Intent 传递数据大小有限的问题
- android http中请求访问添加 cookie
- LeetCode#112 Path Sum
- 手机测试项目时报INSTALL_FAILED_INSUFFICIENT_STORAGE