题目描述

一本书的页码是从 1-n 编号的连续整数:1, 2, 3, ... , n。请你求出全部页码中所有单个数字的和,例如第 123 页,它的和就是 1+2+3=6。

输入

一行为 n(1 <= n <= 10^9)。

输出

一行,代表所有单个数字的和。

样例输入

3456789

样例输出

96342015
题解:
世上最作死写法:
把输入的n拆成k位,考虑每一位对答案的贡献,设f[i]为 1-(pow(10,i)-1)的每一个数字对答案的贡献
可以预处理出来f[i]=f[i-1]*10+pow(10,i-1)*f[1];
然后sum[i]为输入n的后i位的数(如样例sum[1]=9,sum[2]=89,sum[3]=789),   a[i]为输入的n的从后往前数第i位
qw[i]为1-9的前缀和
然后分析样例3456789,先算3000000以内的=3*f[6] 然后考虑3出现的次数=(sum[6]+1) 还有3000000之前的2000000和1000000中的2和1的贡献为qw[a[i]-1]*pow(10,6)
然后考虑>3000000 的部分 456789的贡献,做同样的处理,于是作死的我写成递归形式.. 
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<cmath>
 6 using namespace std;
 7 typedef long long ll;
 8 ll f[15],sum[15],a[15],qw[15];
 9 ll dfs(int x)
10 {
11     if(x==1)return qw[a[x]];
12     ll tmp=0;
13     if(a[x]!=0)tmp=qw[a[x]-1]*pow(10,x-1);
14     return f[x-1]*a[x]+a[x]*(sum[x-1]+1)+tmp+dfs(x-1);
15 }
16 int main()
17 {
18     ll n;
19     cin>>n;
20     for(int i=1;i<=9;i++)f[1]+=i,qw[i]=qw[i-1]+i;
21     for(int i=2;i<=9;i++)
22     {
23         f[i]=f[i-1]*10+pow(10,i-1)*f[1];
24     }
25     ll tmp=n;int m=0,x;
26     while(tmp)
27     {
28         x=tmp%10;
29         m++;
30         a[m]=x;
31         sum[m]=sum[m-1]+pow(10,m-1)*x;
32         tmp/=10;
33     }
34     printf("%lld",dfs(m));
35     return 0;
36 }

转载于:https://www.cnblogs.com/Yuzao/p/7048149.html

【LSGDOJ 2015】数页码相关推荐

  1. word页码自增、页眉页脚的增长

    页眉页脚的页码增长 打开"页眉和页脚"工具栏,切换到页脚区域,在第1栏的适当位置,输入"第页,共页"几个字. 将光标插入到"第页"两个字的中 ...

  2. 【小假期】反思与计划。6.9-6.10

    来这已经整整一天了. 状态,甚至比上一学期还要差得多. 可笑么.开学就没有开个好头. 回忆起不少去年集训的事.那时的我绝没有想到,现在会是这样一种境地. 机房冷清了不少.没有了去年的热闹. 师祖.师父 ...

  3. element组件库中table自定义分页效果

    1.在data中设置初始值 // 页数 页码search: { offset: 1, // 当前页limit: 10, // 条数total:0, //总数}, 2.设置获取后的数据分配 :data= ...

  4. 微信小程序——操作数据库

    案例一:统计用户的访问次数 业务需求: 统计每个用户对程序的访问次数 将访问次数存储到数据库中 访问次数应该与用户进行关联 业务逻辑: 如果用户是第一次访问此程序,向数据库添加一条记录:{openid ...

  5. vue 预检_vue全家桶+element 项目踩坑总结

    项目简介 vue + axios + vue-router + vuex + ElementUI 架构 vue vue数据更新,视图不更新 只有当实例被创建时 data 中存在的属性才是响应式的,Vu ...

  6. 好用的记事本陈列 tree/f

    卷 bigdata 的文件夹 PATH 列表 卷序列号为 2089-3679 E:. │ 1.txt │ └─优秀论文 │ 优秀论文.zip │ ├─2004-2020美赛O奖论文 │ │ 1.txt ...

  7. Word长篇文档排版技巧

    市场部经常要出各种分析报告,一写就是洋洋洒洒几十页.文字功底深厚的小王写东西自然不在话下,然而每每困扰他的却是排版的问题,每次都要花大量的时间修改格式.制作目录和页眉页脚.最头疼的是上司看完报告后让他 ...

  8. ajax前端分页实现

    本来不打算重复造轮子的,网上也已经有了很多关于前端分页的框架,插件等等,但是还是打算写出来是因为前段时间有一个功能模块需要用到前端分页,然后找了很多框架,以及插件,发现其内容非常的复杂或者有的干脆就是 ...

  9. java解析word批注

    最近有一个需求,通过java读取word文档,获取里面的批注内容,批注的作者以及被批注的内容,被批注内容所在的章节数和页码数.poi提供的API都是英文的,而且针对word的操作并不是很完善,所以就自 ...

最新文章

  1. Java项目:学生选课系统(java+javaweb+jdbc)
  2. 3.4.3 嵌套查询
  3. HTML URL 统一资源定位器
  4. 【进展】不只是感谢信,物联网平台哪家强?冰箱运行监测系统项目重启
  5. PHP笔记 ---关于web应用的安全性问题
  6. vue 出现Elements in iteration expect to have 'v-bind:key' directives
  7. spring cloud+dotnet core搭建微服务架构:Api网关(三)
  8. 人工智能AI实战100讲(四)-基于深度学习的图像增强综述
  9. linux的进程pcd,LINUX下查看点云图————point cloud(.ply .vtk .pcd)
  10. zabbix监控特殊端口(8080,80,8009等)
  11. 让LinqToSQL使用Web.Config中的链接字符串(修改Settings.Designer.cs)
  12. java数据库编程入门
  13. 龙卷风路径_【龙卷风的防范措施】龙卷风的易发地点_龙卷风如何分级 - 妈妈网百科...
  14. 【地图服务-nginx代理】
  15. Android调建行APP、建行微信遇到的坑
  16. java web聊天室论文_基于javaweb聊天室.doc
  17. iPhone12、iPhone12 Pro、iPhone12 Max、iPhone12 Pro Max是双卡双待吗
  18. 软件测试五年工作经验自我评价,测试工程师自我评价_测试工程师自我评价范例...
  19. 反掌娱乐创始人姜越 获第五届博鳌企业论坛 “行业领军人物”
  20. java中自动递增和递减

热门文章

  1. EMLOG模板eMedia媒体范儿
  2. sublime text 64位 3.3114 绿色汉化版下载地址
  3. cbrt c语音,多态性(C语言)
  4. 当英文遇上汉语 就知道汉语有多强大了
  5. 新浪云服务器注册免费,新浪免费云空间SAE注册及云豆获取方法
  6. 苹果6s最大屏幕尺寸_苹果 iPhone 12 Pro DXOMARK 屏幕评分 87 分,最大问题是黄色色偏 - 苹果,iPhone...
  7. 在Python应用中Telegram 机器人搭建消息提醒
  8. cdrx4自动排版步骤_教你怎样在CDR里怎样编号自动排版
  9. logback配置 (分文件夹、可配路径)_hanCSDN_20180906
  10. owncloud创建app