页码0~N ,其中0,1....9都出现了几次
/*
这道题目可以暴力解答:对1~n的每个数进行从低位到高位分析
一旦这个数字num出现,a[num]++即可
第二种方法:
由0,1,...9组成的所有n位数,从n个0到n个9共10^n个数,0,1,...9
出现的次数一样设为a(n),那么易得:
a(n)=10a(n-1)+10^(n-1) (n>1) a(n)=1(n==1)化简可得到
a(n)=n*10^(n-1).
那么这道题目从高位到低位依次处理,最后减去多余的前导零即可
*/
#include <bits/stdc++.h>
using namespace std;
int n,a[];
void solve(int n){
int l =log10(n)+;//n的位数
int p =n/(int)round(pow(10.0,l-));//当前的这位数字
//0~9都会出现p*(l-1)*(int)round(pow(10.0,l-2))次
for(int i =;i<;i++) a[i]+=p*(l-)*(int)round(pow(10.0,l-));
//0~p-1都会出现(int)round(pow(10.0,l-1))次
for(int i=;i<p;i++) a[i]+=(int)round(pow(10.0,l-));
int temp =(int)round(pow(10.0,l-));
temp=n%temp;
if(temp==) {//递归可以结束了
//如12500 p再出现一次,0再出现l-1次
a[p]++;
a[]+=l-;
return ;
}
int lt=log10(temp)+;
if(lt!=l-)//如20036
{
a[]+=(l--lt)*(+temp);
}
a[p]+=+temp;
return solve(temp);
}
int main(){ cin>>n;
solve(n);
int len = log10(n)+;
//减去前导零
for(int i =;i<len;i++) a[]-=(int)round(pow(10.0,i));
//如21536
//00000~09999 0出现了10000次
//0000~0999 0出现了1000次
//000~099 0出现了100次
//00~09 0出现了10次
//再加上一个0
for(int i =;i<;i++) printf("%d %d\n",i,a[i]);
return ;
}
页码0~N ,其中0,1....9都出现了几次的更多相关文章
- Ibatis 3.0 之前使用的都是2.0 3.0与2.0的内容有很大的不同
以前用过ibatis2,但是听说ibatis3有较大的性能提升,而且设计也更合理,他不兼容ibatis2.尽管ibatis3还是beta10的状态,但还是打算直接使用ibatis3.0, ibatis ...
- Safari 11.0 已发布,新特性都在这儿了!
Safari 11.0 兼容性 Safari 11.0 可运行于 iOS 11.0 和 macOS 10.1版本的系统环境,同时在macOS 10.12.6 和 10.11.6版本中也可以使用. Hi ...
- 创建或打开解决方案时提示"DotNetCore.1.0.1-SDK.1.0.0.Preview2-003131-x86"错误的解决方案
提示"DotNetCore.1.0.1-SDK.1.0.0.Preview2-003131-x86"错误的解决方案: 1.检查是否有C:\Program Files (x86)\d ...
- R语言中的logical(0)和numeric(0)以及赋值问题
logical(0) 不等于 numeric(0).两者都不等于NULL值,即is.null(logical(0))和is.null(numeric(0))返还值都是FALSE.这很有意思,说明长度为 ...
- 解决 DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe 在VS2015 Update3 安装失败的问题
今天抽空升级VS2015 Update3. 在安装DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe 时报错了,看了错误日志 显示: 看到我标红的两个地方,那么 ...
- 127.0.0.1、0.0.0.0和本机IP地址的区别和使用
一.表面上的区别如下: 首先假设本机有多个网卡:eth0 :192.168.0.1 eth1:192.168.1.1 lo: 127.0.0.1 0.0.0.0 不能ping通,代 ...
- [转] 安装DotNetCore.1.0.1-VS2015Tools.Preview2.0.2出现0x80072f8a未指定的错误
原文地址:安装DotNetCore.1.0.1-VS2015Tools.Preview2.0.2出现0x80072f8a未指定的错误 最近DotNetCore更新到了1.0.1,Azure tools ...
- hadoop2.2.0 + hbase 0.94 + hive 0.12 配置记录
一开始用hadoop2.2.0 + hbase 0.96 + hive 0.12 ,基本全部都配好了.只有在hive中查询hbase的表出错.以直报如下错误: java.io.IOException: ...
- 微软今日发布汇总:VS2015, .NET 4.6, C# 6.0, F# 4.0等重量级产品正式上线
Visual Studio Visual Studio 2015 下载 VS2015新功能列表 ‘ Visual Studio 2013 更新包 5.0 下载 其中包含Visual Studio 20 ...
- Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(三)
前两章我为大家详细介绍了如何搭建Maven环境.Spring MVC的流程结构.Spring MVC与Struts2的区别以及示例中的一些配置文件的分析.在这一章,我就对示例的层次结构进行说明,以及M ...
随机推荐
- Xcode 创建.a和framework静态库(转)
最近因为项目中的聊天SDK,需要封装成静态库,所以实践了一下创建静态库的步骤,做下记录. 库介绍 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种.iOS中的静 ...
- react知识点总结(持续更新。。。)
一.webpack 1. 什么是以及为什么要使用webpack 现在的网页功能越来越丰富,所需要的JavaScript和模块也会很多,为开发更加简洁,出现了以下方法,如模块化,scss,typescr ...
- P5055 【模板】可持久化文艺平衡树 可持久化fhqtreap
P5055 [模板]可持久化文艺平衡树 链接 luogu 思路 可持久化fhq-treap套一套就行了,pushdown和split都要可持久化,但merge不用可持久.以前以为很难一直没看,就是个板 ...
- 小胖守皇宫(VIJOS P1144 )题解
题目描述 huyichen世子事件后,xuzhenyi成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状:某些宫殿间可以互相望见.大内保卫森严,三步一岗,五步一哨,每 ...
- 修改git log中的Date格式
默认的git log查看日志显示的格式如下: Date: Thu Aug 16 17:44:32 2018 +0800 说实话,真不太喜欢这种日期格式还是换成数值比较舒服一点.git bash中使 ...
- Python回归分析五部曲(一)—简单线性回归
回归最初是遗传学中的一个名词,是由英国生物学家兼统计学家高尔顿首先提出来的,他在研究人类身高的时候发现:高个子回归人类的平均身高,而矮个子则从另一方向回归人类的平均身高: 回归分析整体逻辑 回归分析( ...
- linux 系统添加jdk环境变量
export JAVA_HOME=/usr/local/jdk1..0_79 export JAVA_BIN=$JAVA_HOME/bin export PATH=$PATH:$JAVA_BIN ex ...
- Internet地址结构
IP地址结构及分类寻址 IP地址 = <网络号> + <主机号> ------------IPv4(32bit)点分四组表示法: 192.168.31.1 ...
- Redis缓存穿透、缓存雪崩、redis并发问题 并发竞争key的解决方案 (阿里)
阿里的人问我 缓存雪崩(大量数据在同一时间过期了)了如何处理,缓存击穿了如何处理,回答的很烂,做了总结: 把redis作为缓存使用已经是司空见惯,但是使用redis后也可能会碰到一系列的问题,尤其是数 ...
- 2019年MTP管理技能提升培训笔记
2019年MTP管理技能提升培训笔记 管理专题培训–MTP管理技能提升培训 高水准的问题分析解决 何为高水准 高 多层探寻,高度分析,即需要有深度 水 团队讨论,水平思考,即需要有广度 准 预防应变, ...