概述
下面给大家带来的内容是从1-n当中1出现的次数的java实现和思路,感兴趣的小伙伴可以和小编一起来具体了解一下。
题目:
求1-13的整数当中1出现的次数,并且算出100-1300的整数当中1出现的次数。
计算之后,1-13的整数当中含有1的数字有1、10、11、12、13,一共出现了6次。
但是后面就越来越复杂了,希望可以将问题更加的普遍化,能够快速的求出任意非负整数区间中1出现的次数(从1-n中1出现的次数)。
思路1:
代码实现:public class Solution
{
public int NumberOf1Between1AndN_Solution(int n)
{
if (n <= 0)
return 0;
int count = 0;
for (long i = 1; i <= n; i *= 10)
{
long diviver = i * 10;
count += (n / diviver) * i + Math.min(Math.max(n % diviver - i + 1, 0), i);
}
return count;
}
}
思路2:
设N=abcde ,其中abcde分别为十进制中各位上的数字。
如果要计算百位上1出现的次数,它要受到3方面的影响:百位上的数字,百位以下(低位)的数字,百位以上(高位)的数字。
1、假如百位上数字
最后
以上就是大力野狼为你收集整理的计算数字的出现次数 java_求1到n中1出现的次数java如何实现?的全部内容,希望文章能够帮你解决计算数字的出现次数 java_求1到n中1出现的次数java如何实现?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复