版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011296723/article/details/82078980
《剑指offer—面试题43:1~n整数中1出现的次数》
注明:仅个人学习笔记
/**
*
* 从1~n整数中1出现的次数,不考虑时间效率的解法
*
*/
public class NumberOf1Between1AndN43
{
public int NumberOf1Between1AndN_Solution(int n)
{
int number = 0;// 统计总共出现1的次数
for (int i = 0; i <= n; i++)
{
number += NumberOf1(i);
}
return number;
}
// 对1-n中的每一个数字,进行1的统计
private int NumberOf1(int n)
{
int number = 0;// 统计数字n中,出现1的次数
while (n != 0)
{
if (n % 10 == 1)
number++;
n = n / 10;
}
return number;
}
public static void main(String[] args)
{
NumberOf1Between1AndN43 n = new NumberOf1Between1AndN43();
System.out.println(n.NumberOf1Between1AndN_Solution(12));
}
}
———————————————–分割线————————————————
方法二,统计各个位上1出现的次数
转载:
https://blog.csdn.net/yi_afly/article/details/52012593