`

<找工作 三>统计1到N中1出现的个数

 
阅读更多

#include <iostream>
using namespace std;
unsigned long long countOneNum(unsigned long long   N);
int main(){
	unsigned long long n=123;
	cout<<"-----------Start Count N:"<<n<<" One Numbers------------"<<endl;
	unsigned long long result=countOneNum(n);
	cout<<"-----------One Numbers: "<<result<<"------------"<<endl;
	getchar();
}
unsigned long long countOneNum(unsigned long long   n){
	unsigned long long highNum=1;
	unsigned long long midNum=0;
	unsigned long long lowNum=0;
	unsigned long long count=0;
	unsigned long long factor=1;
	while(highNum>0){
		highNum=n/(factor*10);		
		lowNum=n%factor;
		midNum=n/factor%10;
		switch (midNum){
		case 0:
			count+=highNum*factor;
			break;
		case 1:
			count+=highNum*factor+lowNum+1;
			break;
		default:
			count+=(highNum+1)*factor;

		}
		factor*=10;
	}
	return count;
}
 很有意思的东西
分享到:
评论

相关推荐

    C#编程经验技巧宝典

    54&lt;br&gt;&lt;br&gt;0075 用回溯法找出n个自然数中取r个数的全排列 55&lt;br&gt;&lt;br&gt;0076 约瑟夫环问题 56&lt;br&gt;&lt;br&gt;0077 猴子选大王 57&lt;br&gt;&lt;br&gt;0078 如何判断IP是否正确 57&lt;br&gt;&lt;br&gt;0079 如何将小写金额转换为大写金额 57...

    语言程序设计课后习题答案

    cout &lt;&lt; "The size of a short int is:\t" &lt;&lt; sizeof(short) &lt;&lt; " bytes.\n"; cout &lt;&lt; "The size of a long int is:\t" &lt;&lt; sizeof(long) &lt;&lt; " bytes.\n"; cout &lt;&lt; "The size of a char is:\t\t" &lt;&lt; sizeof(char) &lt;&lt; ...

    ubuntu skills ubuntu命令技巧(pdf格式)

    添加服务到系统服务列表中,可以使用`systemctl enable &lt;service-name&gt;.service`命令。 ##### 7.2 删除一个服务 从系统服务列表中删除服务,可以使用`systemctl disable &lt;service-name&gt;.service`命令。 ##### 7.3 ...

    Ubuntu命令技巧.pdf

    - 使用 `dpkg -S &lt;file&gt;` 命令可以找出某个文件是哪个软件包的一部分。 **1.4 查询软件依赖哪些包** - 使用 `apt show &lt;package&gt; | grep Depends` 命令可以看到软件的依赖关系。 **1.5 查询软件被哪些包依赖** - ...

    密码学复习试题

    这样使攻击者除了用穷举攻击以外,找不到其他简洁的数学破译方法。 6. DES是一个分组密码算法,它使用56位的密钥,以64位(一个分组)为单位对数据分组进行加/解密,密文与明文长度相同均为64位。 四、密码体制 7....

    五年级下册数学青岛版模块过关卷1 数与代数 统计(含答案).pdf

    3. 比较工作效率:通过计算每人每天制作贺卡的个数可以判断谁的制作速度最快。 4. 比较两段绳子长度:一段是全长的1/3,一段是全长的2/3,显然第二段比第一段长。 5. 最小公倍数与自然数和的关系:两个相邻自然数的...

    《算法最优解(第一版)》剑指Offer题解校招求职刷题必备.docx

    1. **超过一半的数字**:这个问题要求找出数组中出现次数超过一半的元素,可以采用摩尔投票法,通过两两抵消的方式快速找到多数元素。 2. **调整数组顺序**:将数组中的奇数移动到偶数前面,同时保持它们之间的相对...

    C/C++软件开发求职试题集合

    **试题**: 写一个函数`f(n)`,返回0到n之间出现的"1"的个数。 **知识点**: - **计数算法**:统计特定字符出现的次数。 ### 题目十六:静态函数与普通函数的区别 **试题**: static函数与普通函数有什么区别? **...

    ccf计算机软件能力认证考试:试题编号201312-1

    程序的目标是找到这n个数中出现次数最多的数,如果有多个数出现次数相同且最多,我们则选择其中最小的那个数。 代码的实现过程可以分为以下几个步骤: 1. 输入数的个数n:通过`do...while`循环确保用户输入的n在...

    计算机二级公共基础知识

    如果从根结点开始,按层次(每一层从左到右)用自然数1,2,……,n给结点进行编号,则对于编号为k(k=1,2,……,n)的结点有以下结论: ① 若k=1,则该结点为根结点,它没有父结点;若k&gt;1,则该结点的父结点编号...

    Excel函数大全

    `=COUNTIFS(N1:N10, "Yes", O1:O10, "&gt;50")` 当N列是"Yes"且O列大于50时,统计满足条件的行数。 9. **DATE函数**:创建日期。`=DATE(年份, 月份, 日)` 如 `=DATE(2022, 1, 1)` 返回2022年1月1日的日期。 10. **...

    数据挖掘实验报告和程序代码(Java实现)

    众数是一组数据中出现次数最多的数值。为了找到众数,我们需要记录每个数值出现的频率,并找出出现次数最多的那个。Java代码实现如下: ```java public static void mode(int[] s, int n) { int m = 0, k = 0, i =...

    淘宝2017实习招聘笔试题(1).pdf

    10. **位操作**:`x=x&(x-1)`是常见的位操作,用于清除x的最低位1,通常用于计数二进制表示中1的个数。 11. **数组索引**:`*(p[0]+1)`访问的是数组第二个元素的值,即4。 12. **逻辑推理**:7公斤米和砝码的问题...

    常用EXCEL函数大全

    `=COUNTIFS(N1:N50, "Yes", O1:O50, "&gt;50")` 统计同时满足N列是"Yes"且O列大于50的单元格数量。 9. **CONCATENATE或CONCAT函数**:连接两个或多个文本字符串。`=CONCATENATE(P1, " ", Q1)` 或`=CONCAT(P1, " ", Q1)...

    测试培训教材

    把“调用&lt;Connect And Sign-On&gt;”的测试步骤调整到第一步 查看需求覆盖率 -- Linking Requiremnets to a Test 将需求链接到测试Cruise Booking 注:由于Cruise Booking的测试是由Cruise Booking的需求转化而成...

    java面试-leetcode面试题解之第204题计数质数-java题解.zip

    if (n &gt; 2 && isPrime[n - 1]) count++; return count; } ``` 这段代码首先初始化一个布尔数组isPrime,表示每个数是否是质数。然后,从2开始遍历,每次找到一个质数i,就将它的倍数标记为非质数。最后,统计...

    [C语言面试笔试]2023精选编程题.doc

    该题目要求编写函数fun(),它的功能是求出1到1000 之内能被7或11整除,但不能同时被7和11整除的所有整数,并将它们放在a所指的数组中,通过n返回这些数的个数。函数的实现过程中使用了for循环来遍历1到1000之间的...

    Excel在相关性与回归分析中的应用PPT课件.pptx

    例如,对于B2到B11的数据范围,手工输入`=MODE(B2:B11)`或通过函数导入法("插入" -&gt; "函数" -&gt; "统计" -&gt; "MODE")来找出众数。 2. **中位数**:中位数是将数据排序后位于中间位置的数值。可以使用`MEDIAN`函数,...

    《剑指Offer》题目及Java版代码(带目录)

    13. 数组中出现次数超过一半的数字:这涉及到排序算法和计数排序算法,以及如何处理大数据量的排序。 14. 数组中只出现一次的两个数,而其他数都出现两次:这可以利用位运算中的异或操作来解决。 15. 找出最小的K...

    c语言练习初学者

    - **统计数字9的个数**:遍历1到100之间的每个数字,检查每一位是否为9。 - **求阶乘**:使用循环或递归来计算阶乘。 - **求素数**:检查100以内的所有数字,找出其中的素数。 - **求完数**:找出所有因子的和等于...

Global site tag (gtag.js) - Google Analytics