题目链接

题意 :写下m到n之间所有的数,会写多少个0。

思路 :先算0到m的,再算0到n的,最后相减。

网上有位大神是这么推的,看下面。。。。

首先转化成求 [0, x] 中所有数中,含有的 0 的个数

那么对于一个数 x,怎么求出从 0 到 x 中所有数含有 0 的个数的和呢?

我们可以限制每一位是 0,然后再来计算。举个例子,假设 x 是 21035

首先 0 肯定是一个,sum 赋初值为 1

个位数是 0

个位数前面的数不能是 0,能够取的数就是 [1, 2103],个位后面没有了

那么 sum+=2103*1

十位数是 0

十位数前面的数不能是 0,能够取的数就是 [1, 210],由于 0 比 3 小,十位后面可以取 [0, 9]

那么 sum+=210*10

百位数是 0

百位数前面的数不能是 0,能够取的数就是 [1, 21],由于 0 是等于 0 的,这里就要特殊处理下了:

百位数前面的数如果是在 [1, 20] 中的,百位数后面的数可以取的就是 [0, 99]

百位数前面的数如果取的是 21,百位数后面的数就只能取 [0, 35]

那么,sum+=20*100+36

 //
#include <stdio.h>
#include <string.h>
#include <iostream> using namespace std ; void ji(long long s,long long &cnt ,long long t)
{
if(s <= ) return ;
long long x = s /,y = s %,z = s / ;
for( ; x != ; x /= )
if(x % == )
cnt += (y+)*t ;
cnt += z*t ;
ji(z-,cnt,t*) ;
}
int main()
{
long long m,n ;
while(~scanf("%I64d %I64d",&m,&n))
{
if(m == - && n == -) break ;
long long summ = ,sumn = ;
ji(m-,summ,1ll) ;
ji(n,sumn,1ll) ;
if(m == ) sumn++ ;
printf("%I64d\n",sumn-summ) ;
}
return ;
}

POJ 3286 How many 0's?的更多相关文章

  1. POJ 3286 How many 0's?(几多0?)

    POJ 3286 How many 0's?(几多0?) Time Limit: 1000MS   Memory Limit: 65536K [Description] [题目描述] A Benedi ...

  2. POJ 3286 How many 0's(数位DP模板)

    题目链接:http://poj.org/problem?id=3286 题目大意: 输入n,m,求[n,m]的所有数字中,0出现的总数是多少,前导零不算. 解题思路: 模板题,设dp[pos][num ...

  3. POJ 3286 How many 0's?(数位DP)

    题目链接 终于过了,边界让我wa了好几次,猥琐的用AC代码对拍,很无奈,用非常麻烦的方法.写一下,估计以后再碰到,肯定看不懂这是写的什么了. 以前做过,统计1和2的,统计0比1和2麻烦多了,有前导0的 ...

  4. POJ 3286 How many 0&#39;s?

    题目大意: 计算[m,n]之间全部数字有多少个零. 解题思路: 能够用[0,m)之间和[0,n]之间有多少个零然后作差. 规律是计算全部位置在到当前数时有多少个零. 以下是代码:   #include ...

  5. poj 3286 统计0的个数

    #include <iostream> using namespace std; long long p; ]; long long solve(long long n){ ; ;i< ...

  6. POJ 3009 Curling 2.0【带回溯DFS】

    POJ 3009 题意: 给出一个w*h的地图,其中0代表空地,1代表障碍物,2代表起点,3代表终点,每次行动可以走多个方格,每次只能向附近一格不是障碍物的方向行动,直到碰到障碍物才停下来,此时障碍物 ...

  7. POJ 3299 Humidex 难度:0

    题目链接:http://poj.org/problem?id=3299 #include <iostream> #include <iomanip> using namespa ...

  8. poj 3009 Curling 2.0

    题目来源:http://poj.org/problem?id=3009 一道深搜题目,与一般搜索不同的是,目标得一直往一个方向走,直到出界或者遇到阻碍才换方向. 1 #include<iostr ...

  9. POJ 3009 Curling 2.0(DFS + 模拟)

    题目链接:http://poj.org/problem?id=3009 题意: 题目很复杂,直接抽象化解释了.给你一个w * h的矩形格子,其中有包含一个数字“2”和一个数字“3”,剩下的格子由“0” ...

随机推荐

  1. EDK中如何使用ISE中生成的IP

    EDK中如何使用ISE中生成的IP: 网上上有说这个的文章,但是很复杂,也就是添加bdd文件,其实这些都不需要自己操作的,我们可以在EDK中import 中添加ngc文件,ngc文件就是core ge ...

  2. php生成txt文件换行问题

    用双引号即"\r\n"换行,不能用单引号即'\r\n'.

  3. 启动 mysql 失败 Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql'

    Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql' 这应该是某种情况下导致/usr/ ...

  4. js Table冻结表头示例代码

    Table冻结表头的js实现代码. Table冻结表头: <script type="text/javascript"> //冻结table的表头  function  ...

  5. php 文件上传类 实例分享

    最近在研究php上传的内容,找到一个不错的php上传类,分享下. <?php /** * 文件上传类 * class: uploadFile * edit: www.jbxue.com */ c ...

  6. js根据IP取得天气

    <span id="weather"></span> <script> function weather(cityName) { var cha ...

  7. Amazon S3 PHP Class Documentation

    API : http://undesigned.org.za/2007/10/22/amazon-s3-php-class/documentation Example: http://www.phpb ...

  8. phpExcel导出excel的类,每步都有说明

    require_once WEB_PATH . '/lib/PHPExcel/PHPExcel.php'; require_once WEB_PATH . '/lib/PHPExcel/PHPExce ...

  9. 虚拟机开机提示:This virtual machine appears to be in use

    [原因]:由于电脑非正常关机导致,重新启动虚拟机就会出现This virtual machine appears to be in use的提示.[解决方法]:到虚拟机的安装目录下删除所有.lck的目 ...

  10. DATE,DATETIME,DATETIME2等日期时间数据类型

    日期范围广 0001-01-01 到 9999-12-31.时间范围广 00:00:00 到 23:59:59.9999999. -----------------DATE --只存储日期 selec ...