题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。
private int iFactor = 1, iLower = 0, iCur = 0, iHigh = 0, iCount = 0;
public int sum1(int N) {
while (N / iFactor != 0) {
iLower = N - (N / iFactor) * iFactor;
iCur = (N / iFactor) % 10;
iHigh = N / (10 * iFactor);
switch (iCur) {
case 0:
iCount += iFactor * iHigh;
break;
case 1:
iCount += iFactor * iHigh + iLower + 1;
break;
default:
iCount += (iHigh + 1) * iFactor;
break;
}
iFactor *= 10;
}
return iCount;
}剑指offer:从1到n整数中1出现的次数,布布扣,bubuko.com
原文:http://blog.csdn.net/litianpenghaha/article/details/23937445