描述 计算 1 至 n 中数字 X 出现的次数,其中 $n \ge 1,X \in [0,9]$. 解题思路 这是一道比较简单的题目,举个例子先:假设 $n=11, X=1$,那么就是求 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 这 11 个数字中 1 出现的次数,很容易能看出来结果为 4,在 1 和 10 中各出现了一次,在 11 中出现了两次. 最简单的办法就是依次遍历 1 至 n,再分别求每个数字中 X 出现的次数,代码如下所示: #include <stdio.…
转自: nailperry 一.1的数目 编程之美上给出的规律: 1. 如果第i位(自右至左,从1开始标号)上的数字为0,则第i位可能出现1的次数由更高位决定(若没有高位,视高位为0),等于更高位数字X当前位数的权重10i-1. 2. 如果第i位上的数字为1,则第i位上可能出现1的次数不仅受更高位影响,还受低位影响(若没有低位,视低位为0),等于更高位数字X当前位数的权重10i-1+(低位数字+1).1为数字0 3. 如果第i位上的数字大于1,则第i位上可能出现1的次数仅由更高位决定(若没有高位…
题目: 数出0到n(含)中数字2出现了几次. 思路: 1.暴力方法,数出每个数字包含几个2,然后累加起来. 2.分析:分别考虑数字n每一位出现2的次数,如123123: 从左往右考虑4123123: 考虑第一个1(即第6位),该位出现2的次数为4*10^6/10: 考虑第一个2(即第5位),该位出现2的次数为41*10^5/10+3123+1: 考虑第一个3(即第4位),该位出现2的次数为(412+1)*10^4/10: 附:除以10的原因在于:每10个数字,任意位出现2的概率为1/10. 总结…
问题来源:http://ac.jobdu.com/problem.php?pid=1373 举例:如果n=10 那么1-10之间的1的个数是2(1,2,3,4,...10) 这其中有一个规律: 挨着看n的每一位. 如果当前位小于1,那么个数等于高位*当前位率. 如果当前位等于1,那么个数等于高位*当前位率 + 低位 + 1. 如果当前位大于1,那么个数等于(高位+1)*当前位率.…
Given an integer n, count the total number of digit 1 appearing in all non-negative integers less than or equal to n. For example:Given n = 13,Return 6, because digit 1 occurred in the following numbers: 1, 10, 11, 12, 13. Hint: Beware of overflow. c…
题意:rt 分析: 当然不可能去遍历,应该寻找统计的方法. 如计算 78501 中 "5" 出现的次数. 我们可以枚举“5”出现的位置, 如当“5”位于倒数第2位时,写成 xxx5x,由于5大于0,前面只能取0~784,后面无限制为10: 如当“5”位于倒数第3位时,写成xx5xx,由于5等于5,前面取0~77乘以后面无限制的100,加上前面取78,后面取“01”: 如当“5”位于倒数第4位时,写成x5xxx,由于8大于5,前面可取0~7,后面无限制的1000. 总之,枚举x出现的位置…
1:分类的使用场景:想对一个类,扩充一些功能,而又不改变原来类的模型,也不用继承,这时OC中的特有语法:分类可以做到: 当然分类也是一个类,也需要声明和实现,声明在.h文件中,实现在.m文件中,格式如下 // 声明 @interface  类名  (分类名称) @end // 实现 @implementation 类名 (分类名称) @end 2:分类的好处,当一个类比较庞大时,不同的部分可以放到不同的分类中,也方便团队中类的开发: 3:分类使用注意: a:分类不能增加成员变量,只能对原类增加方…
晚上搞xamarin ,运行xamarin项目好好的,不知道怎么回事,一次运行xamarin android项目的时候,部署失败,以前也是遇到这样的错误. 尝试在条件"$(_DeviceSdkVersion) >= 21"中对计算结果为""而不是数字的"$(_DeviceSdkVersion) 有点郁闷,前几次运行都是好好的,怎么这一次突然报错很郁闷,终于知道了. 1.这是第一种解决的办法,不知道你的是不是这样,我出现这种错误,是之前运行项目好好的,…
原码:原码是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 如:如果是八位二进制1即用00000001表示,-1即用10000001表示. 反码:正数的反码就是其本身,负数的反码是在其原码的基础上,符号位不变,其他各个位取反. 补码:正数的补码就是其本身,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1). 利用原码计算:1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [10000010…
一.简单使用 Runnable是执行工作的独立任务,但是它不返回任何值.如果你希望任务完成的时能够返回一个值,那么可以实现一个Callable接口.在Java SE5中引入的Callable是一种具有类型参数的泛型,它的类型参数表示的是从call()方法中返回的值,并且必须用ExecutorService.submit()方法调用它.下面是一个简单的例子(摘自Java编程思想) class TaskWithResult implements Callable<String> { private…