博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
组合数学 - 1的个数
阅读量:6296 次
发布时间:2019-06-22

本文共 944 字,大约阅读时间需要 3 分钟。

 1的个数

 

 

Mean: 

 输入一个n,计算小于10^n的正整数中含有1的数的个数。

analyse:

这题是一道组合数学课后思考题。

基本思路:  组合数学乘法原则 + 容斥原理

n位数中,每位可选:{0,1,2,3,4,5,6,7,8,9},所以共有10^n种,其中要除掉每位都为0的情况,所以要减一。

其中每位上不选1的情况为:{0,2,3,4,5,6,7,8,9},所以共有9^n中,同样要除掉全部为0的情况。

Time complexity:O(n)

 

Source code:

 

//Memory   Time// 1347K   0MS// by : Snarl_jsb#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define N 1000010#define LL long longusing namespace std;//输入一个n,求小于10^n的正整数中有多少个1;int main(){// freopen("C:\\Users\\ASUS\\Desktop\\cin.txt","r",stdin);// freopen("C:\\Users\\ASUS\\Desktop\\cout.txt","w",stdout); int n; while(cin>>n) {// if(n==1)// puts("1"); int sol=1; for(int i=1;i<=n;i++) { sol*=10; } sol--; int res=1; for(int i=1;i<=n;i++) { res*=9; } res--; cout<
<

  

转载于:https://www.cnblogs.com/crazyacking/p/3954996.html

你可能感兴趣的文章
validate表单验证及自定义方法
查看>>
javascript 中出现missing ) after argument list的错误
查看>>
使用Swagger2构建强大的RESTful API文档(2)(二十三)
查看>>
Docker容器启动报WARNING: IPv4 forwarding is disabled. Networking will not work
查看>>
(转)第三方支付参与者
查看>>
程序员修炼之道读后感2
查看>>
DWR实现服务器向客户端推送消息
查看>>
js中forEach的用法
查看>>
Docker之功能汇总
查看>>
!!a标签和button按钮只允许点击一次,防止重复提交
查看>>
(轉貼) Eclipse + CDT + MinGW 安裝方法 (C/C++) (gcc) (g++) (OS) (Windows)
查看>>
还原数据库
查看>>
作业调度框架 Quartz.NET 2.0 beta 发布
查看>>
mysql性能的检查和调优方法
查看>>
项目管理中的导向性
查看>>
Android WebView 学习
查看>>
(转)从给定的文本中,查找其中最长的重复子字符串的问题
查看>>
HDU 2159
查看>>
spring batch中用到的表
查看>>
资源文件夹res/raw和assets的使用
查看>>