每天一道算法题(40)——组成的最小数字
2015-11-04 22:56
260 查看
题目:
时间限制100 ms
内存限制
65536 kB
代码长度限制
8000 B
给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。
代码:
# include <iostream> #include"string" using namespace std; int main() { static int counter[10];//设置计数器 int i; for(i=0;i<10;i++) cin>>counter[i]; //考虑存在‘0’的情况 i=1; string s; if(counter[0]){ while(counter[i]==0&&i<10) i++; if(i==10){//只有‘0’的情况 s+='0'; return 0; } else{ counter[i]--; s+=(char)(i+'0'); } } //双重遍历输出 for(i=0;i<10;i++) for(int j=counter[i];j>0;j--) s+=(char)(i+'0'); cout<<s<<endl; return 0; }
相关文章推荐
- 在双击控件进入到程序代码编辑界面后,没写东西不影响运行,但删除后报错
- 第一个 mac 程序 Create-JSON-Model
- 《深入理解计算机系统》家庭作业
- MySQL 5.7.9 GA新特性
- Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法
- Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法
- 图基础总结(算法导论)
- 凡事都有第一次
- ZeroMq实现跨线程通信
- mysql导入导出
- 婴儿辅食
- 编写一个函数itob(),将整数n转换为以b进制的数,保存到s中
- html 设置浏览器默认文档模式
- mongodb linux 64位下载
- _INTSIZEOF(n)解析
- 2015.11.2~5训练总结
- 美联社收入来源及产品服务
- 怎样处理InterruptedException
- MyEclipse6.5中SVN插件安装
- Chapter 14 Exercises & Problems