1009 数字1的数量
给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。

例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。

Input
输入N(1 <= N <= 10^9)
Output
输出包含1的个数
Input示例
12
Output示例
5
#include<bits/stdc++.h>
using namespace std;
int dp[15];
void init()
{dp[0] = 0;for(int i=1;i<=9;i++)dp[i] = 10*dp[i-1] + pow(10,i-1);////预处理每位数中1的个数,例如i=3,就是1~999中含有1的个数
}int Count(int n)
{int res=0,len=0,tail=0,radix=1,digit=0;while (n){digit = n%10;n/=10;len++;if( digit > 1)res += radix+digit * dp[len-1];  //radix表示10^(len-1),例如len=3,就会有100~199这些数要计算,前导的1会产生radix个else if(digit == 1){res += tail + 1 + dp[len-1];//tali表示dight后面的数
        }tail += digit *radix;radix *= 10;}return res;
}int main ()
{init();int n;scanf("%d",&n);printf("%d\n",Count(n));
}

转载于:https://www.cnblogs.com/Draymonder/p/7373362.html

51nod 1009 数字1的数量相关推荐

  1. 51Nod 1009 数字1的数量 数位dp

    51Nod 1009 传送门 模板orz 好难记的感觉-- #include<iostream> #include<algorithm> #include<string& ...

  2. 51nod 1009 数字1的数量(数学)

    题目描述: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1009 给定一个十进制正整数N,写下从1开始,到N的所有正数, ...

  3. 51Nod-1009 数字1的数量【数位DP+记忆化搜索】

    1009 数字1的数量  给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数. 例如:n = 12,包含了5个1.1,10,12共包含3个1,11包含2个1,总共5个1. ...

  4. 51nod1009 数字1的数量

    1009 数字1的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 

  5. NYOJ 648 数字1的数量

    数字1的数量 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数. 例如:n = 12,包含 ...

  6. nowcoder数圈圈 | 51nod1042 数字0-9的数量

    https://www.nowcoder.com/acm/contest/30/D https://www.51nod.com/onlineJudge/questionCode.html#!probl ...

  7. 谭浩强课后题之----输入一行字符,统计英文字母,数字以及空格数量

    代码: #include<stdio.h> #include<string.h>int main() {char ss[1000];gets(ss);//因为有空格用scanf ...

  8. 乙级(Basic Level) 1009 数字黑洞

    题目描述 给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到 一个新的数字.一直重复这样做,我们很快会停在有"数 ...

  9. 数字0-9的数量(51Nod-1042)

    题目 给出一段区间a-b,统计这个区间内0-9出现的次数. 比如 10-19,1出现11次(10,11,12,13,14,15,16,17,18,19,其中11包括2个1),其余数字各出现1次. 输入 ...

最新文章

  1. Webpack4 学习笔记 - 01:webpack的安装和简单配置
  2. leetcode 最后一个单词的长度
  3. spring batch @EnableBatchProcessing作用
  4. python如何输入一个数停止输出可循环部分_Python 第04周:控制与循环
  5. Fiddler简介及安装和HTTPS的解决
  6. 2016年10月计算机网络技术,2016年10月自考《计算机网络技术》练习题及答案1
  7. python有什么内容_python能做什么
  8. MAC系统下解决Teamviewers检测出商业限时问题
  9. python 轻量级邮件发送库
  10. C#开源大全--汇总
  11. 解决BT5不能上网的问题
  12. 遥控器,未来世界的入口?
  13. 我终于开通了微信公众号
  14. 清华同方主机装系统过程中进不去bios
  15. Android常用热门开源库汇总(持续更新)
  16. 爱我,是不是因为怜悯
  17. 计算机设备行业特征,2018年我国计算机、通信和其他电子设备制造业现状分析 产业园区聚集特征明显...
  18. Gephi简易学习[七]————通过Pyhthon编写程序来调用honglou.json生成.csv文件
  19. clamav安装使用
  20. 社区活动|Apache Hudi x Apache Pulsar Meetup 杭州站来啦!

热门文章

  1. 你在微信漂流瓶里遇到过哪些有意思的人和事?
  2. 大学生在校期间可以考哪些证书?
  3. 25岁,欠债47万怎么办
  4. 你还在盲目做抖音吗?
  5. 为什‮多很了学么‬营销‮识知‬依然赚不到钱?
  6. Even better, if you don’t want to answer and
  7. C语言实现字符串转整型
  8. I/O设备的基本概念和分类
  9. trycatch处理流IO流中的异常
  10. sql如何重命名实例_重命名Ubuntu Linux上SQL Server实例