NBUT [1475] Bachelor
[1475] Bachelor
- 时间限制: 1000 ms 内存限制: 65535 K
- 问题描述
- 炎热的暑期集训就要结束了,在这短短的20天,大家都很努力,因为很多都是光棍嘛。balabala
所以 Marknoon 先森一直耿耿于怀,毕竟他也是单身嘛。
有一天,Marknoon 先森看着一串数字,发现了那个跟他同命相连的数字1,所以他就开始无聊起来,想知道从数字1到数字N,一共出现了几个1。
例如N=12,则1的个数为5,出现1的数字分别为1,10,11,12。 - 输入
- 输入一个数N(1 <= N <= 2147483647)。
- 输出
- 输出从1到N中所有数字里出现 1 的个数。
- 样例输入
3
13
123- 样例输出
1
6
57- 提示
无
- 来源
Hungar
按位置计算,即分别计算个位,十位,百位,千位 。。。的 出现的次数,然后将他们的个数和输出
这里以 为例进行说明: 个位为 的情况 : _ _ _ 横线部分 可以是 到 的任意数字 所以个位 一共有 215个 ------- ( + )
十位为 的情况: _ _ _ 横线部分 可以是 到 的任意数字 十位 一共有 个 ------- ( +)*
百位为 的情况: _ _ _ 横线部分 可以是 到 的任意数字 百位 一共有 个 ------ * + +
千位为 的情况: _ _ _ 横线部分 可以是 到 的任意数字 千位 一共有 个 ------ ( + )*
当然 还有 为 的情况 如果是 的话 则 有 * ---- 十位 有 个
#include<iostream>
#include<cstdio>
#include<cstring> using namespace std; char str[];
int digit[]; long long Zero[]={,,,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12}; int cal(int l,int r){ //得到digit数组里面[i,j]区间构成的数
int ans=;
for(int i=l;i<=r;i++)
ans=ans*+digit[i];
return ans;
} int main(){ //freopen("input.txt","r",stdin); while(~scanf("%s",str)){
int len=strlen(str);
for(int i=;i<len;i++)
digit[i]=str[i]-'';
long long ans=;
int l,r;
for(int i=;i<len;i++){
l=cal(,i-);
if(digit[i]>) //如果数字大于1 则用左边 digit[0,i-1] 构成的数 加1 乘上 10的(右边位数)次方
ans+=(l+)*Zero[len--i];
else if(digit[i]==){ //如果数字等于1 则用左边 digit[0,i-1] 构成的数 乘上 10的(右边位数)次方 后 加上 右边digit[i,len-1] 构成的数 再加上1
r=cal(i+,len-);
ans+=l*Zero[len--i]+r+;
}else if(digit[i]==) //如果数字等于0 则用左边digit[0,i-1] 构成的数 直接乘上 10的(右边位数)次方
ans+=l*Zero[len--i];
}
cout<<ans<<endl;
}
return ;
}
NBUT [1475] Bachelor的更多相关文章
- noj [1475] Bachelor (找1的个数)
http://ac.nbutoj.com/Problem/view.xhtml?id=1475 [1475] Bachelor 时间限制: 1000 ms 内存限制: 65535 K 问题描述 炎热的 ...
- NBUT 1457 莫队算法 离散化
Sona Time Limit:5000MS Memory Limit:65535KB 64bit IO Format: Submit Status Practice NBUT 145 ...
- - >code vs 1475 m进制转十进制
1475 m进制转十进制 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 查看运行结果 题目描述 Description 将m进制数n转化成一个 ...
- ACM: NBUT 1107 盒子游戏 - 简单博弈
NBUT 1107 盒子游戏 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format: Practice Appoint ...
- ACM: NBUT 1105 多连块拼图 - 水题 - 模拟
NBUT 1105 多连块拼图 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format: Practice Appoint ...
- ACM: NBUT 1646 Internet of Lights and Switches - 二进制+map+vector
NBUT 1646 Internet of Lights and Switches Time Limit:5000MS Memory Limit:65535KB 64bit IO Fo ...
- NBUT 1525 Cow Xor(01字典树+前缀思想)
[1525] Cow Xor 时间限制: 2000 ms 内存限制: 65535 K 问题描述 农民约翰在喂奶牛的时候被另一个问题卡住了.他的所有N(1 <= N <= 100,000)个 ...
- NBUT 1186 Get the Width(DFS求树的宽度,水题)
[1186] Get the Width 时间限制: 1000 ms 内存限制: 65535 K 问题描述 It's an easy problem. I will give you a binary ...
- NBUT 1635 Explosion(最小顶点覆盖)
[1635] Explosion 时间限制: 10000 ms 内存限制: 65535 K 问题描述 there is a country which contains n cities connec ...
随机推荐
- Linux反编译
转自:http://bbs.pediy.com/showthread.php?threadid=11315 一个简单的linux crackme的逆向前言 最不喜欢的就是写破解教程,酒后一时冲动 ...
- SQLSERVER 免费对比数据库结构和数据的工具支持:SQL Server 2012, SQL Server 2008 and SQL Server 2005
New xSQL Schema Compare - version 5 Compare the schemas of two SQL Server databases, review differen ...
- (转)在NGUI使用图片文字(数字、美术字)(直接可用于UILable)
本文永久地址:http://www.omuying.com/article/24.aspx,[文章转载请注明出处!] 在 Unity 开发过程中,我们经常会使用到美术提供的图片文字(数字)来美化我们的 ...
- [Go] Returning Multiple Values from a Function in Go
Returning multiple values from a function is a common idiom in Go, most often used for returning val ...
- TCP/IP具体解释学习笔记--TCP的超时与重传
1.基本概念 TCP之所以能够安全的将数据在传输中的安全性,是因为它每次给对方发送数据,都会等待对方给个确认,当长时间收不到这个确认,发送端就会重发这个数据. 2.超时时间的測量 要測超时时间,TCP ...
- 离线LCA学习
题目1 : 近期公共祖先·二 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描写叙述 上上回说到,小Hi和小Ho用很拙劣--或者说粗糙的手段山寨出了一个奇妙的站点,这个站点能 ...
- uni/微信小程序 - 使用字体图标
阿里字体图标:http://www.iconfont.cn/home/index?spm=a313x.7781069.1998910419.2 1.单个/ 多个选择字体图标 2. 导入字体库 可以参考 ...
- 在线帮助文档编辑器gitbook
https://www.gitbook.com/editor/windows https://yuzeshan.gitbooks.io/gitbook-studying/content/howtous ...
- Linux内核配置:Kconfig
Linux内核源码中,差不多有300个内核子目录都包含了名为Kconfig的文件.这个文件用于配置其所在目录的源码的特性.Kconfig中的每个配置参数都有附带的帮助文本,配置子系统会解析Kconfi ...
- 【JDBC】Mysql海量数据插入——PreparedStatement加快数据插入
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5861959.html 使用JDBC连接数据库时,如果插入的数据量大,一条一条地插入数据会变得非常缓慢.此时,我 ...