10到10000中的0的个数
2015-08-23 15:30
197 查看
题目1:10到10000中0的个数。
题目2:10到10000中所有位乘积为0的数的个数。
题目1的解决依赖于题目2,所以首先要求出10到10000中所有含有0的数字的个数。
1、当为2位数时:
第一位不能为0,从1到9中取,第二位要为0,则含有0的数字的个数为9*1=9。
2、当为3位数时:
第一位不能为0,从1到9中取,
含有1个0,9*C(2,1)*9=162
含有2个0,9*1=9
3、当为4位数时,第一位不能为0,从1到9里面取得,
当数字中有一个0时,0可能在第一位,第二位,或者第三位,从3位中取1个,其余位不能为0,只能从1到9里面取,
含有0的数字个数为 9*C(3,1)*9*9=2187
当数字中有2个0时,就是从后面的3位中取出2位来放置这2个0,其余1位只能从1到9里面取得,
所以含有0的数字个数为9*C(3,2)*9=243。
当数字中有3个0时,
含有0的数字个数为9*1=9。
4、当数字为10000时,也满足条件,所以含有0的数字个数再加1
将以上所有红色的结果相加,所以10到10000中所有位乘积为0的数的个数为2620。
题目一可以在以上每种情况求出含有0的数字的个数基础上,乘以每个数字中0的个数,再相加就能得出结果。
10到10000中0的个数为2893。
程序验证:
![](http://img.blog.csdn.net/20150823205519575?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
题目2:10到10000中所有位乘积为0的数的个数。
题目1的解决依赖于题目2,所以首先要求出10到10000中所有含有0的数字的个数。
1、当为2位数时:
第一位不能为0,从1到9中取,第二位要为0,则含有0的数字的个数为9*1=9。
2、当为3位数时:
第一位不能为0,从1到9中取,
含有1个0,9*C(2,1)*9=162
含有2个0,9*1=9
3、当为4位数时,第一位不能为0,从1到9里面取得,
当数字中有一个0时,0可能在第一位,第二位,或者第三位,从3位中取1个,其余位不能为0,只能从1到9里面取,
含有0的数字个数为 9*C(3,1)*9*9=2187
当数字中有2个0时,就是从后面的3位中取出2位来放置这2个0,其余1位只能从1到9里面取得,
所以含有0的数字个数为9*C(3,2)*9=243。
当数字中有3个0时,
含有0的数字个数为9*1=9。
4、当数字为10000时,也满足条件,所以含有0的数字个数再加1
将以上所有红色的结果相加,所以10到10000中所有位乘积为0的数的个数为2620。
题目一可以在以上每种情况求出含有0的数字的个数基础上,乘以每个数字中0的个数,再相加就能得出结果。
10到10000中0的个数为2893。
程序验证:
#include<iostream> using namespace std; int main() { int total=0; int num=0; int num0=0; int temp=0; for(int j=10;j<=10000;j++) { total=1; int i=j; while(i!=0) { temp=i%10; if(temp==0) num0++; total*=temp; i=i/10; } if(total==0) { //cout<<j<<" "; num++; } } cout<<"10到10000中0的个数"<<endl; cout<<num0<<endl; cout<<"10到10000中所有位乘积为0的数的个数"<<endl; cout<<num<<endl; return 0; }结果:
相关文章推荐
- 三周工作日志
- U-Boot 第二阶段代码分析
- oracle迁移表空间数据文件
- 23种设计模式全解析
- 杂谈: 房产信息泄露谁是内鬼?
- iOS UI基础-4.1应用程序管理 字典转Model
- Java动态代理
- oracle迁移表空间数据文件
- django+apache部署
- 简单纯js实现点击切换TAB标签实例
- ueditor1-4-3 编辑器使用教程
- Sftp和ftp 区别、工作原理等
- Maximum Value(哈希)
- mysql数据表的连接实例
- 基于网页的认证跳转实现
- Effective C++ 条款17 以独立语句将newed对象置入智能指针
- Maximum Value(哈希)
- Dom第四天学习总结
- innodb和myisam的区别
- 洛谷1048 采药 解题报告