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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571395.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux jlink软件安装,LINUX下安装JLINK

确认是否安装libusb$ dpkg -l | grep libusb如果有libusb相关信息&#xff0c;说明已经安装了$ dpkg -l | grep libusbii libusb-0.1-4 2:0.1.12-20 userspace USB programming libraryii libusb-1.0-0 2:1.0.9~rc3-2ubuntu1 userspace USB programming libraryii libusb-dev 2…

tcpdump记录

tcpdump -i eth0 -nn -A -X host 192.168.20.82 and port 9080 -i&#xff1a;interface 监听的网卡。-nn&#xff1a;表示以ip和port的方式显示来源主机和目的主机&#xff0c;而不是用主机名和服务。-A&#xff1a;以ascii的方式显示数据包&#xff0c;抓取web数据时很有用。…

abortonerror_如何在多项目目录顶层的Android Gradle Plugin中禁用lint abortOnError

我有一个顶级的Android Gradle项目.这个项目下面嵌套了多个子项目(有时它们是2级深),即&#xff1a;top level project|project1vendor libraries|lib1lib2lint正在中断一些图书馆项目的建设.我可以编辑每个图书馆项目的build.gradle来解决问题android {lintOptions {abortOnEr…

linux权限源码分析,Linux基础之文件权限详解

Linux中对于权限的制定虽然没有Windows的那么精细&#xff0c;但是如果你了解并掌握Linux中文件的权限知识&#xff0c;也可以像Windows那样对权限做到精确配置。Linux中的文件权限是什么&#xff1f;如何查看Linux中的文件权限[[email protected] test]# ll -d /test/drwxr-xr…

Vue工程模板文件 webpack打包

1、github github地址&#xff1a;https://github.com/MengFangui/VueProjectTemplate 2、webpack配置 &#xff08;1&#xff09;基础配置webpack.base.config.js const path require(path); //处理共用、通用的js const webpack require(webpack); //css单独打包 const Ext…

flutter的按钮如何变为不可选中_如何在Flutter中禁用按钮?

小编典典我想你可能要出台一些辅助功能&#xff0c;以build您的按钮&#xff0c;以及与一些属性键关机的沿有状态的部件。使用StatefulWidget / State并创建一个变量来保存您的条件(例如isButtonDisabled)最初将其设置为true(如果您要这样做)呈现按钮时&#xff0c;请勿将onPre…

linux下toe网卡驱动,toe命令是干什么的,有没有大神解答一下

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼[lHP14 ~]$ toe -as--> /etc/terminfo----> /usr/share/terminfo--*-: Eterm Eterm with xterm-style color support (X Window System)--*-: Eterm-256color Eterm with xterm 256-colors--*-: Eterm-88color Eterm with 88…

ALSA声卡笔记2---ASoC驱动框架

1、简单了解一下ASOC 在嵌入式系统里面的声卡驱动为ASOC&#xff08;ALSA System on Chip&#xff09; &#xff0c;它是在ALSA 驱动程序上封装的一层 分为3大部分&#xff0c;Machine&#xff0c;Platform和Codec ,三部分的关系如下图所示&#xff1a;其中Machine是指我们的…

举例说明语言接触会造成哪些结果_语言学概论全真模拟演练(二)

第一部分选择题(30分)一、单项选择题(本大题共20小题&#xff0c;每小题1分&#xff0c;共20分。在每小题列出的四个备选项中只有一个是符合题目要求的&#xff0c;请将其代码填写在题后的括号内&#xff0c;错选、多选或来选均无分。)1.语言符号可变性的根本原因在于语言符号的…

linux下ceontab不起作用,linux下crontab 不能执行的原因

1.相关sh文件没有x权限2.相关sh文件中&#xff0c;不包含如下的信息&#xff1a;[oracleleiredhat u01]$ cat job.shexport ORACLE_BASE/u01/app/oracleexport ORACLE_HOME/u01/app/oracle/oracle/product/10.2.0/db_1PATH/u01/app/oracle/oracle/product/10.2.0/db_1/bin:$PAT…

drive下载 synology_群晖 Synology Drive 的安装与使用

首先进入“套件中心”&#xff0c;然后在搜索框中输入“drive”&#xff0c;出现的结果中能看到需要安装的套件了&#xff0c;点击“立即安装”即可&#xff0c;剩下就是确认和下一步&#xff0c;如图&#xff1a;当然我们也要安装安装完后该套件会四个选项&#xff1a;立即打开…

dev_open linux,linux 伪终端设备 /dev/ptmx

伪终端(pseudoterminal): ptmx, pts (伪终端master和伪终端slave)./dev/ptmx用于创建伪终端主从设备对.当我们用open打开/dev/ptmx设备后, 返回主设备的文件描述符,并且在/dev/pts/目录下创建一个伪终端从设备.在成功打开/dev/ptmx后, 可以通过函数ptsname()来获取从设备的path…

fetch git pull 切换_git fetch git pull

解析.git文件夹进入正题之前&#xff0c;我们先来看看.git文件夹1.config配置文件[core]repositoryformatversion 0filemode truebare falselogallrefupdates truesharedRepository group[remote "origin"]url https://xxx/xxx/xxx.gitfetch refs/heads/*:ref…

C语言对stm32f103程序,STM32F103WIFI程序C语言

《STM32F103WIFI程序C语言》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《STM32F103WIFI程序C语言(33页珍藏版)》请在人人文库网上搜索。1、实用标准文案 AP模式 AP的SSID &#xff1a; ATWAP11BG,LAUVAN(SSID),CHI AP的KEY: : ATWAKEYWPA2PSK,AES,22222222 AP模式&…

python之路_自定义属性、json及其他js补充

一、自定义属性 我们知道&#xff0c;在前端页面渲染的过程中&#xff0c;我们可能会需要用到一些后端传来的参数&#xff0c;这种参数的获取我们一般是通过模板语言渲染得到。但是当这些参数是在js文件中被用到&#xff08;js代码若是单独以文件形式被引用&#xff0c;模板语言…

python中类型错误、计数不采用关键字的错误怎么改_Python设计错误

你要求链接或其他来源&#xff0c;但实际上没有。这些信息散布在许多不同的地方。什么才是真正构成设计错误的因素&#xff1f;您是只考虑语言定义中的语法和语义问题&#xff0c;还是包括诸如平台和标准库问题以及特定实现问题等实用问题&#xff1f;您可以说&#xff0c;从性…

C语言打印日历总结报告,C语言打印日历

应同学的要求&#xff0c;写了个日历&#xff0c;输入年份&#xff0c;输出12个月份的日历表&#xff0c;代码如下 &#xff1a;#includebool isLeap(int year){if((year%40 && year%100!0) || (year%4000))return 1;elsereturn 0;}void printCalendar(int year){int d…

电文的编码和译码c语言实现,电文的编码及译码.doc

数据结构课程设计题目&#xff1a;电文的编码与译码院系&#xff1a;班级&#xff1a;学号&#xff1a;姓名&#xff1a;2014-2015年度 第1学期目录一&#xff0e;题目&#xff1a;电文的编码与译码3二&#xff0e;设计目标3三&#xff0e;问题描述3四&#xff0e;需求分析3五&…

java中二进制怎么说_面试常用:说清楚Java中synchronized和volatile的区别

回顾一下两个关键字&#xff1a;synchronized和volatile1、Java语言为了解决并发编程中存在的原子性、可见性和有序性问题&#xff0c;提供了一系列和并发处理相关的关键字&#xff0c;比如synchronized、volatile、final、concurren包等。2、synchronized通过加锁的方式&#…

python 日记 day4。

1.为何数据要分类 数据是用来表示状态的&#xff0c;不同的状态应该用不同类型的数据来表示。 2.数据类型 数字 字符串 列表 元组 字典 集合 列表&#xff1a;列表相比于字符串&#xff0c;不仅可以储存不同的数据类型&#xff0c;而且可以储存大量数据&#xff0c;32位python的…