问题描述

给定一个十进制整数N,求出从1到N的所有整数中出现”1”的个数。 

例如:N=2时 1,2出现了1个 “1” 。

N=12时 1,2,3,4,5,6,7,8,9,10,11,12。出现了5个“1”。

1、暴力求解法

//暴力求解
long CountOnes(long n)
{int i,j;//循环变量int ncount=0;//计数for (i=1; i<=n; i++){j=i;while(j!=0){if (j%10==1){ncount++;}j/=10;}}return ncount;
}

2、统计方法

统计n每一位的值:

current = (n / i) % 10;before = n / (i * 10);after = n - (n / i) * i;

123

current=2;

before=1;

after=3;

对于某个位置,它可以是大于1,等于1,等于0

如果大于1,则由高位+1决定数目

如果等于1,则由其左右两边的数目决定

如果等于0,也是由高位决定

1、current=0时

cout=cout+before*i;

2、current=1

cout=cout+before*i+after*i

3、current>1

cout=cout+(before+1)*i

public long CountOne2(long n) {long count = 0;long i = 1;long current = 0, after = 0, before = 0;while ((n / i) != 0) {current = (n / i) % 10;before = n / (i * 10);after = n - (n / i) * i;if (current > 1)count = count + (before + 1) * i;else if (current == 0)count = count + before * i;else if (current == 1)count = count + before * i + after + 1;i = i * 10;}return count;
}

统计0到n之间1的个数相关推荐

  1. 统计0到n各数字的个数

    目录 1.问题描述 2.算法 3.注意事项 1.问题描述 一本书的页码从自然数1 开始顺序编码直到自然数n.书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0.数字计数问题要求对给定书的总页码 ...

  2. 输入一串数字统计0到9每个数字的个数

    题目: 输入一串字符统计这串字符中0有多少,1有多少,-,9有多少. #include <stdio.h> int main() {char c;int shu[10]={0},i;whi ...

  3. 4000000000内满足f(n)=n最大的n(f(n)统计0~n中所有1的个数)

    2019独角兽企业重金招聘Python工程师标准>>> #include <windows.h> #include <cstdlib> #include &l ...

  4. Java黑皮书课后题第7章:*7.7(统计个位数的数目)编写一个程序,生成0和9之间的100个随机整数,然后显示每一个数出现的次数

    *7.7(统计个位数的数目)编写一个程序,生成0和9之间的100个随机整数,然后显示每一个数出现的次数 题目 题目描述 破题 代码 运行示例 题目 题目描述 *7.7(统计个位数的数目)编写一个程序, ...

  5. Java求n以内素数_求0到n之间素数个数的序列(Java)

    要求: (1) 找出0-1000之间素数 (2) 设f(n)表示0-n之间的素数个数,计算出当n=0,1,2,3,.....,997时f(n)的值,并写入文件 分析: 首先找素数使用一个效率较高的方法 ...

  6. 编写程序,随机产生20个0到1之间的数,将这20个数写入文本文件中,要求每行5个数

    import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOEx ...

  7. 统计两个IP地址之间的IP个数

    问题 求两个IP地址之间的IP个数,例如192.18.16.1~192.18.16.5,2001:DB8:0000:0023:0008:0800:200C:417C~2001:DB8:0:23:8:8 ...

  8. ios取两个数之间的随机小数_关于ios:生成0到1之间的随机浮点数

    我试图生成一个介于0和1之间的随机数.我一直在阅读有关arc4random()的信息,但是没有关于从中获取浮点数的任何信息. 我该怎么做呢? 不是重复项,这似乎是与浮点数明确相关的唯一问题. [0,1 ...

  9. c语言 统计数量用count_C语言编程中统计输入的行数以及单词个数的方法

    统计输入的行数 标准库保证输入文本流以行序列的形式出现,每一行均以换行符结束.因此,统计行数等价于统计换行符的个数. #include /* count lines in input */ main( ...

最新文章

  1. 题目1023:EXCEL排序
  2. 美团_ccListView选中Item的颜色修改及解决登陆后升级通知再次弹出的bug
  3. Ubuntu连接以太网时显示“设备未托管”的解决办法
  4. java rsa 验_Java使用RSA加密解密签名及校验
  5. 3加密狗计算pin码_6 个芯片打造复古经典计算机:215 色显示,能编程能玩小游戏...
  6. 路飞的11大团队建设之道
  7. 在前端团队的那些日子(初见)
  8. 建设“智慧法院” 引入庭审语音识别系统
  9. 【布局优化】基于人工鱼群算法实现充电桩布局优化matlab源码
  10. 计算机考研培训中公,计算机408
  11. Windows10键盘快捷键大全
  12. ISBN 国际标准书号
  13. 如何助力鸿蒙发展,实话实说:华为以一已之力,能不能推动鸿蒙系统的发展 - 区块网...
  14. 《循序渐进Linux (第2版)》.pdf
  15. 安卓签名文件与MD5 SHA1 SHA256
  16. 云数据库RDS是什么
  17. 物联网在智慧校园里的应用
  18. 什么事MVC?什么是MVC!
  19. 工具赋能|Python环境搭建
  20. Java第十六天~第十七天/11.18~11.19

热门文章

  1. 移动机器人平台的坐标系---map,odom,base_link
  2. msm8937+android7.1系统播放某个MP4文件在data分区下创建ramdump并生成很多elf文件问题
  3. Android——APK 在32bit/64bit平台 动态库问题
  4. Android编译系统中的Kconfig,Makefile,.config编译系统浅析
  5. python astype(float)_Python astype(np.float)函数使用方法解析
  6. c++编写手机小游戏代码_只需22行代码,用python编写自己的小游戏
  7. 生态篇-HBase 生态介绍
  8. Java Socket实战之三:传输对象
  9. 阿里云centos7通过yum安装 Mysql 8.0.11
  10. 小程序之点击跳转到对应内容