1-n里有多少个1

  1. #include <cstdio>
  2. #include <iostream>
  3. using namespace std;
  4. int main() {
  5. int n=10;
  6. cin >> n;
  7. int f[10];
  8. int x[10];
  9. f[0] = 0;
  10. f[1] = 1;
  11. x[0] = 0;
  12. x[1] = 1;
  13. for (int i = 2; i < 10; i++) {
  14. x[i] = x[i - 1] * 10;
  15. f[i] = f[i - 1] * 10 + x[i];
  16. }
  17. int y = n;
  18. int s = 0;
  19. int k = 0;
  20. int len = 0;
  21. int rd[10];
  22. while (y != 0) {
  23. rd[len++] = y % 10;
  24. y /= 10;
  25. }
  26. for (int i = len - 1; i >= 0; i--) {
  27. if (rd[i] == 0) {
  28. continue;
  29. }
  30. if (rd[i] == 1) {
  31. s += n%x[i+1] + 1;
  32. }
  33. else {
  34. s += x[i+1];
  35. }
  36. s += (rd[i]) * f[i];
  37. }
  38. cout << s << endl;
  39. }

1-n里有多少包含1的数

  1. #include <cstdio>
  2. #include <iostream>
  3. using namespace std;
  4. int main() {
  5. int n=10;
  6. cin >> n;
  7. int f[10];
  8. int x[10];
  9. f[0] = 0;
  10. f[1] = 1;
  11. x[0] = 0;
  12. x[1] = 1;
  13. for (int i = 2; i < 10; i++) {
  14. x[i] = x[i - 1] * 10;
  15. f[i] = f[i - 1] * 9 + x[i];
  16. }
  17. int y = n;
  18. int s = 0;
  19. int k = 0;
  20. int len = 0;
  21. int rd[10];
  22. while (y != 0) {
  23. rd[len++] = y % 10;
  24. y /= 10;
  25. }
  26. for (int i = len - 1; i >= 0; i--) {
  27. if (rd[i] == 0) {
  28. continue;
  29. }
  30. if (rd[i] == 1) {
  31. s += n%x[i+1] + 1;
  32. s += f[i];
  33. break;
  34. }
  35. else {
  36. s += x[i+1];
  37. s += (rd[i]-1) * f[i];
  38. }
  39. }
  40. cout << s << endl;
  41. }

递推dp数位的更多相关文章

  1. 递推DP URAL 1167 Bicolored Horses

    题目传送门 题意:k个马棚,n条马,黑马1, 白马0,每个马棚unhappy指数:黑马数*白马数,问最小的unhappy值是多少分析:dp[i][j] 表示第i个马棚放j只马的最小unhappy值,状 ...

  2. 递推DP URAL 1017 Staircases

    题目传送门 /* 题意:给n块砖头,问能组成多少个楼梯,楼梯至少两层,且每层至少一块砖头,层与层之间数目不能相等! 递推DP:dp[i][j] 表示总共i块砖头,最后一列的砖头数是j块的方案数 状态转 ...

  3. 递推DP URAL 1260 Nudnik Photographer

    题目传送门 /* 递推DP: dp[i] 表示放i的方案数,最后累加前n-2的数字的方案数 */ #include <cstdio> #include <algorithm> ...

  4. 递推DP URAL 1353 Milliard Vasya's Function

    题目传送门 /* 题意:1~1e9的数字里,各个位数数字相加和为s的个数 递推DP:dp[i][j] 表示i位数字,当前数字和为j的个数 状态转移方程:dp[i][j] += dp[i-1][j-k] ...

  5. 递推DP URAL 1119 Metro

    题目传送门 /* 题意:已知起点(1,1),终点(n,m):从一个点水平或垂直走到相邻的点距离+1,还有k个抄近道的对角线+sqrt (2.0): 递推DP:仿照JayYe,处理的很巧妙,学习:) 好 ...

  6. 递推DP 赛码 1005 Game

    题目传送门 /* 递推DP:官方题解 令Fi,j代表剩下i个人时,若BrotherK的位置是1,那么位置为j的人是否可能获胜 转移的时候可以枚举当前轮指定的数是什么,那么就可以计算出当前位置j的人在剩 ...

  7. 递推DP HDOJ 5328 Problem Killer

    题目传送门 /* 递推DP: 如果a, b, c是等差数列,且b, c, d是等差数列,那么a, b, c, d是等差数列,等比数列同理 判断ai-2, ai-1, ai是否是等差(比)数列,能在O( ...

  8. hdu1978(递推dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1978 分析: 递推DP. dp[][]表示可以到达改点的方法数. 刚开始:外循环扫描所有点dp[x][ ...

  9. 递推DP URAL 1031 Railway Tickets

    题目传送门 /* 简单递推DP:读题烦!在区间内的都更新一遍,dp[]初始化INF 注意:s1与s2大小不一定,坑! 详细解释:http://blog.csdn.net/kk303/article/d ...

随机推荐

  1. 当Django模型迁移时,报No migrations to apply 问题时

    前言:当更改model时在次迁移是不是经常报此类错误,解决以下两点便可以更新成功 1. 删除修改模型对应的app应用下的migrations中的生成文件 2. 进入数据库,找到django_migra ...

  2. OAuth2.0-3客户端授权放到数据库

    授权得客户端信息.授权码信息全都存在数据库 1.建表 官方给了个sql文件:https://github.com/spring-projects/spring-security-oauth/blob/ ...

  3. Dubbo系列之 (一)SPI扩展

    一.基础铺垫 1.@SPI .@Activate. @Adaptive a.对于 @SPI,Dubbo默认的特性扩展接口,都必须打上这个@SPI,标识这是个Dubbo扩展点.如果自己需要新增dubbo ...

  4. web新手第二周知识汇总

    这周学习了盒模型以及一些定位的知识,现在简单做下汇总 盒模型组成部分: ie浏览器默认值是border-box content(内容盒)蓝色 padding(内容和边框的距离 绿色 填充盒包含内容)b ...

  5. java数组与数组异常

    一 数组的定义 1.第一种定义方法: 格式: 数据类型[] 数组名=new 数据类型[数组长度] 2.第二种定义方法: 格式: 类型[] 数组名 = new 类型[]{元素,元素,.....} 3.第 ...

  6. C#LeetCode刷题之#645-错误的集合(Set Mismatch)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3887 访问. 集合 S 包含从1到 n 的整数.不幸的是,因为数 ...

  7. rocketMq安装及集群配置

    网上关于rocketMq安装.集群配置的文章有很多,作为一个初学者,跟着网上的各种教程安装遇到了各种坑,可谓是一路坎坷.本文记录下rocketMq安装的完整过程.希望对你有一点帮助 安装rocketM ...

  8. Kerberos认证原理及基于Kerberos认证的NFS文件共享

    目录 Kerberos认证原理 简介 client访问server过程 一.Authentication Service Exchange (AS Exchange) 二.Ticket Grantin ...

  9. GitHub标星120K+的JDK并发编程指南,连续霸榜GitHub终于开源了

    前言 在编程行业中,有一个东西是和广大程序员形影不离的,在最一开始接触编程就是配置它的运行环境,然后java / javac,对,这个东西就是jdk 昨天项目刚上线,可以稍微休息一下了,但是猛的闲下来 ...

  10. Android 本地缓存Acache的简单使用

    设置缓存数据: ACache mCache = ACache.get(this); mCache.put("key1", "value"); //保存6秒,如果 ...