在从1到n的正数中1出现的次

 

题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。

例如输入12,从1到12这些整数中包含1
的数字有1,10,11和12,1一共出现了5次。

 

如:

30143:

由于3>1,则个位上出现1的次数为(3014+1)*1

由于4>1,则十位上出现1的次数为(301+1)*10

由于1=1,则百位上出现1次数为(30+0)*100+(43+1)

由于0<1,则千位上出现1次数为(3+0)*1000

注:以百位为例,百位出现1为100~199,*100的意思为单步出现了100~199,100次,*30是因为出现了30次100~199,+(43+1)是因为左后一次301**不完整导致。

 

时间: 2024-08-02 15:19:53

在从1到n的正数中1出现的次的相关文章

C++求1到n中1出现的次数以及数的二进制表示中1的个数_C 语言

在从 1 到 n 的正数中 1 出现的次数 题目: 输入一个整数 n,求从 1 到 n 这 n 个整数的十进制表示中 1 出现的次数. 例如输入 12,从 1 到 12 这些整数中包含 1  的数字有 1, 10, 1 1 和 12, 1 一共出现了 5 次 代码实现(GCC编译通过): #include "stdio.h" #include "stdlib.h" int count1(int n); int count2(int n); int main(void

动态规划笔试题

1.最长公共子序列.最长公共子串 最长公共子序列(Longest-Common-Subsequence,LCS) dp[i][j]:dp[i][j]表示长度分别为i和j的序列X和序列Y构成的LCS的长度 dp[i][j] = 0,如果i=0 或 j=0  dp[i][j] = dp[i-1][j-1] + 1,如果 X[i-1] = Y[i-1]  dp[i][j] = max{ dp[i-1][j], dp[i][j-1] },如果 X[i-1] != Y[i-1] LCS长度为 dp[Xle

数据结构与算法面试题80道

1.把二元查找树转变成排序的双向链表  题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表. 要求不能创建任何新的结点,只调整指针的指向.    10  / \  6 14  / \ / \ 4 8 12 16  转换成双向链表 4=6=8=10=12=14=16.    首先我们定义的二元查找树 节点的数据结构如下:  struct BSTreeNode {  int m_nValue; // value of node  BSTreeNode *m_pLeft; // lef

算法面试题

1.把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表. 要求不能创建任何新的结点,只调整指针的指向. 10 / \ 6 14 / \ / \ 4 8 12 16 转换成双向链表 4=6=8=10=12=14=16. 首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode { int m_nValue; // value of node BSTreeNode *m_pLeft; // left child of nod

关于SetLocaleInfo()

原文:关于SetLocaleInfo() 此函数用于设置系统的一些本地信息, 非常有用. 比如日期格式为'yyyy/mm/dd'时, 稍微不注意,有些程序语句会报错. 以下资料网络收集: 1. SetLocaleInfo()中 LCTYPE values 的具体意义    出自: http://hi.baidu.com/stormsxf/blog/item/7395b3000ed2e015728b65a5.html BOOL SetLocaleInfo(LCID Locale, LCTYPE L

如何在Excel表格中的正数前添加“+”号

默认情况下,Excel工作表中负数前都显示负号"-",而正数前不显示正号"+".如果我们不仅需要在Excel表中的负数前显示负号,还需要在正数前也显示正号,该怎么办呢?方法如下. 1.启动Excel2007,打开所需的工作簿文件,然后在所需的工作表中,选择需要显示正号的单元格区域. 2.单击"开始"选项卡,然后在"数字"组中,单击对话框启动器(如图1). 图1 对话框启动器 3.单击"数字"选项卡,然后在&

Excel表格中的正数前添加“+”号的方法

  默认情况下,Excel工作表中负数前都显示负号"-",而正数前不显示正号"+".如果我们不仅需要在Excel表中的负数前显示负号,还需要在正数前也显示正号,该怎么办呢?方法如下. 1.启动Excel2007,打开所需的工作簿文件,然后在所需的工作表中,选择需要显示正号的单元格区域. 2.单击"开始"选项卡,然后在"数字"组中,单击对话框启动器(如图1). 图1 对话框启动器 3.单击"数字"选项卡,然后

全显示成正数-安卓开发中如何使一个byte类型的数组内的数据不显示成负数

问题描述 安卓开发中如何使一个byte类型的数组内的数据不显示成负数 在做Android开发的时候一个byte类型的数组result,里面有比较大的正数,需要做什么样的处理才能使他显示的全是正数:求大神指导,给个代码 byte[] result for (int i = 0; i < result.length; i++) Log.e("读出全部page", "byte " + i + " is " + result[i]); 解决方案 f

c#-差分GPS代码中的伪距改正数的计算

问题描述 差分GPS代码中的伪距改正数的计算 我最近在做关于u-blox板子的差分GPS的代码编写,在计算伪距改正数的时候遇到了问题,我计算出来的伪距改正数偏大.我想问问,有没有人写过着方面的代码,能不能给我个参考,最好是在c#下写的.非常感谢....