您的位置:首页 > Web前端

[置顶] 剑指offer:第32题从1到n整数中1出现的次数

2017-07-15 17:18 211 查看
编程之美上的思路:
public class _Test_32 {
public long countOne(long n) {
long count = 0;
long i = 1;
long current = 0, after = 0, before = 0;
while ((n / i) != 0) {
current = (n / i) % 10; // 当前位数字
before = n / (i * 10); // 高位数字
after = n - (n / i) * i; // 低位数字
if (current > 1)
count = count + (before + 1) * i;
else if (current == 0)
count = count + before * i;
else if (current == 1)
count = count + before * i + after + 1;
i = i * 10;
}
return count;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: