题意:

给定一个十进制正整数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的个数

思路:

假设十进制数N的位数是K。我们分别统计【1,N】中第1位、第2位,....,第K位是1的数的个数。然后相加。【【巧妙!】】

分类讨论。

代码:

int n;

int main(){

    cin >> n;
int w=(int)log10(n)+1;
ll ans=0;
rep(i,0,w-1){
int left, cur, right, tmp;
cur=w-i;
tmp=(int)pow(10,cur-1);
right=n%tmp;
left=n/tmp/10;
int curNum=n/tmp%10;
if(curNum<1){
ans+=((ll)left*tmp);
}
else if(curNum==1){
ans+=((ll)left*tmp+1+right);
}
else{
ans+=((ll)(left+1)*tmp);
}
}
print("%lld\n",ans); ret 0;
}

最新文章

  1. ReactiveCocoa源码拆分解析(六)
  2. ArcGIS Add-in插件开发从0到1及实际案例分享
  3. C#语言基础-类——string增加内容
  4. Intellij Idea中运行tomcat 报內存溢出 解决方案 火龙战士 火龙战士
  5. LeetCode(9) - Palindrome Number
  6. 本地环境phpStorm10+XDebug配置和断点调试
  7. ASP.NET MVC 搭建简单网站 --1.前端页面布局和基本样式实现
  8. hadoop ssh无密码登陆
  9. C# winform 递归选中TreeView子节点
  10. 【原创】bootstrap框架的学习 第七课 -[bootstrap表格]
  11. Redis源码阅读之主从复制——Slave视角
  12. 小白的Python之路 day2 列表、元组操作
  13. spring boot容器启动详解
  14. 接口测试工具-fiddler
  15. css自定义滚动条
  16. Mybatis源码分析
  17. [No000018B]写代码要用 Vim,因为越难入门的工具回报越大
  18. 【pyspider】关于匹配html的数据
  19. ps4 如何导出切片 单个图片
  20. C语言程序设计--字符串与指针及数组与指针

热门文章

  1. HTML音乐悬浮播放器
  2. 【C++基础教程】第一课
  3. 数学相关函数在PHP中的应用简介
  4. PHP设计模式之命令模式
  5. 在PHP中操作临时文件
  6. php升级版本后的影响5.5-&gt;7.1
  7. c++ 的学习 第二集函数的重载
  8. ThreadLocal基本使用和内存泄漏分析
  9. MySQL强人“锁”难《死磕MySQL系列 三》
  10. 题解「雅礼集训 2017 Day7」事情的相似度