题目:输入一个整数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