How many 0‘s?

Time Limit: 1000MS

Memory Limit: 65536K

Total Submissions: 2844

Accepted: 1506

Description

A Benedict monk No.16 writes down the decimal representations of all natural numbers between and including m and n, m ≤ n. How many 0‘s will he write down?

Input

Input consists of a sequence of lines. Each line contains two unsigned 32-bit integers m and n, m ≤ n. The last line of input has the value of m negative and this line should not be processed.

Output

For each line of input print one line of output with one integer number giving the number of 0‘s written down by the monk.

Sample Input

10 11

100 200

0 500

1234567890 2345678901

0 4294967295

-1 -1

Sample Output

1

22

92

987654304

3825876150

Source

dp的思路很容易看出来,关键是处理好细节,调试了很长时间的代码。

#include

#include

#include

#include

#include

#define N 30

using namespace std;

__int64 dp1[N],dp2[N];

int dig[N];

int Top;

__int64 ba[N];

int main()

{

//freopen("data.txt","r",stdin);

__int64 f();

memset(dp1,0,sizeof(dp1));

memset(dp2,0,sizeof(dp2));

dp1[1] = dp2[1] = 1;

ba[0] = 1;

ba[1] = 10;

for(int i=2;i<=11;i++)

{

dp1[i] = dp2[i-1]*9;

dp2[i] = 10*dp2[i-1]+ba[i-1];

ba[i] = ba[i-1] * 10;

}

__int64 n,m;

while(scanf("%I64d %I64d",&n,&m)!=EOF)

{

if(n<0)

{

break;

}

Top = 0;

n-=1;

__int64 res1,res2;

if(n==-1)

{

res1 = 0;

}else

{

if(n==0)

{

dig[Top++] = 0;

}

while(n!=0)

{

dig[Top++] = n%10;

n = n/10;

}

res1=f();

}

Top = 0;

if(m==0)

{

dig[Top++] = 0;

}

while(m!=0)

{

dig[Top++] = m%10;

m = m/10;

}

res2 = f();

printf("%I64d\n",res2-res1);

}

return 0;

}

__int64 f()

{

__int64 res = 0;

for(int i=1;i<=Top-1;i++)

{

res+=dp1[i];

}

//cout<

int t;

for(int i=Top-1;i>=0;i--)

{

if(i==Top-1&&Top>1)

{

t = 1;

}else

{

t = 0;

}

for(int j=t;j<=dig[i]-1;j++)

{

res+=dp2[i];

if(j==0)

{

res+=ba[i];

}

}

}

for(int i=Top-1;i>=0;i--)

{

if(dig[i]==0)

{

__int64 sum = 0;

for(int j=i-1;j>=0;j--)

{

sum = sum*10+dig[j];

}

sum+=1;

res+=sum;

}

}

return res;

}

原文:http://blog.csdn.net/crper/article/details/20155953

github 思维导图开元软件_Mymind教学系列--Github上的免费且强大思维导图工具-(一)...相关推荐

  1. github 思维导图开元软件_画思维导图记笔记的工具软件

    思维导图是很多人在做笔记的时候都会用到的一种记录方式,使用思维导图可以简单有效的表达发散性思维,能够协助人们在各种因素间平衡展开思考,从而提升自己笔记的含金量和工作效率,有没有画思维导图记笔记的工具软 ...

  2. github 思维导图开元软件_Windows上有哪些很棒思维导图的软件

    以下软件都是我自己从大学到工作一直在用的Windows软件,良心推荐,希望能给正在使用Windows系统的小伙伴的工作生活带来便捷. Processon 在线作图工具 processon官网 正如Pr ...

  3. github 思维导图开元软件_哪款思维导图软件比较好用?

    谢邀~ 思维导图作为一种风靡全球的知识梳理工具,广泛的运用于各个行业中,可以用来做头脑风暴.知识点梳理.项目管理等等.下面盘点了市面上几款主流好用的思维导图工具. 优点:脑图风格多样,适用于多场合,思 ...

  4. 开源中国,开元软件和插件

    各种开元软件和插件 开源中国 里面又各种框架,各种插件,各种库

  5. python mac自动打电话软件_有了这款免费又强大的 macOS 自动化工具,让你少买很多 App...

    macOS 系统最令人难以割舍的特性之一就是丰富的自动化工具支撑:内置的 AppleScript 与 Automator,还有第三方软件 Keyboard Maestro.Hazel.Alfred.L ...

  6. 强大的 10款 Mac 思维导图和流程图软件推荐

    本文首发于[风云社区 SCOEE],想了解更多mac软件相关内容,可到[风云社区 SCOEE] 今天和大家分享思维导图和流程图工具,思维导图软件可以说应用非常的广,无论是设计工作.开发工作.管理工作都 ...

  7. Edraw Max——亿图图示设计软件基本使用教程

    基本概念 Edraw Max:亿图图示设计软件,即亿图图示专家(EDraw Max),是一款基于矢量的绘图工具,包含大量的事例库和模板库.可以很方便的绘制各种专业的业务流程图.组织结构图.商业图表.程 ...

  8. linux下的p图软件,P图编辑文字软件-P图编辑下载v2.1.0-Linux公社

    P图编辑文字软件为用户提供了海量不同风格的图片处理特效,让用户可以轻松剪辑出自己喜欢的照片.同时,P图编辑文字软件还为用户提供了免费的创意壁纸哦,让用户可以P图美美哒.喜欢的小伙伴别错过了,快来点击下 ...

  9. 用计算机画函数图象的软件,信息技术应用 用计算机画函数图象优秀教案

    吴碧林 地区: 云南省 - 丽江市 - 永胜县 学校:程海镇程海二中 共1课时 信息技术应用 用计算机画函数图象">信息技术应用 用计算机- 初中数学       人教2011课标版 ...

最新文章

  1. do一下来了一个redux
  2. Yii中创建自己的Widget
  3. mysql having子句_mysql having子句学习
  4. iOS 导航栏实现总结
  5. Visual C++——加载自定义光标
  6. Vue学习(组件的定义及调用、路由)-学习笔记
  7. linux 将远程mysql复制,在线备份MySQL及远程copy到远程备份服务器shell脚本
  8. 回旋滚动_中频炉电动旋转轴承,管道回旋轴承,电炉旋转轴承
  9. JVM 内存模型组成+经典总结
  10. java spring 容器_java – Spring容器实现
  11. 【LeetCode】剑指 Offer 62. 圆圈中最后剩下的数字
  12. LeNet识别眼疾iChallenge-PM
  13. 计算机硬件4核是什么意思,8核,6核,4核和双核CPU是什么意思?
  14. Python基础知识-字典dictionary
  15. Window 开机连接ocsp.globalsign.com
  16. 电脑桌面一计算机打不开怎么办,电脑桌面什么都打不开怎么办
  17. for循环中表达式和循环体的执行顺序
  18. norflash的操作
  19. 2月3日模拟赛分析及总结
  20. Ecshop实现注册页面手机号唯一的验证

热门文章

  1. 一个二线城市程序员的一年【坐标成都】
  2. 后端在插入数据发现重复如何正确的弹出警告_前百度面试官整理的——Java后端面试题(一)...
  3. python登录网页账号密码_遇到需要登录的网站怎么办?学好python,用这3招轻松搞定...
  4. 8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8。
  5. Java 递归创建目录
  6. mysql 类似wm concat_oracle的wm_concat()和mysql的group_concat()合并同列变成一行的用法以及和concat()合并不同列的区别...
  7. ps efgrep mysql 命令_mysql常用管理命令
  8. python实例 83,84
  9. qt坐标系统与布局的简单入门
  10. 从一个深度图里面导出NARF特征