1-N中1的个数

LONGLONG Sum1s(ULONGLONG n)

{

    ULONGLONG iCount = 0;

    ULONGLONG iFactor = 1;

    ULONGLONG iLowerNum = 0;

    ULONGLONG iCurrNum = 0;

    ULONGLONG iHigherNum = 0;

    while(n / iFactor!= 0)

    {

        iLowerNum = n - (n / iFactor) * iFactor;

        iCurrNum= (n / iFactor) % 10;

        iHigherNum = n / (iFactor * 10);

        switch(iCurrNum)

        {

        case 0:

            iCount += iHigherNum * iFactor;

            break;

        case1:

            iCount += iHigherNum * iFactor + iLowerNum +1;

            break;

        default:

            iCount += (iHigherNum + 1) * iFactor;

            break;

        }

        iFactor *= 10;

    }

    return iCount;

}

猜你喜欢

转载自blog.csdn.net/zrh_CSDN/article/details/80705915