#include <iostream>
using namespace std;
unsigned long long countOneNum(unsigned long long N);
int main(){
unsigned long long n=123;
cout<<"-----------Start Count N:"<<n<<" One Numbers------------"<<endl;
unsigned long long result=countOneNum(n);
cout<<"-----------One Numbers: "<<result<<"------------"<<endl;
getchar();
}
unsigned long long countOneNum(unsigned long long n){
unsigned long long highNum=1;
unsigned long long midNum=0;
unsigned long long lowNum=0;
unsigned long long count=0;
unsigned long long factor=1;
while(highNum>0){
highNum=n/(factor*10);
lowNum=n%factor;
midNum=n/factor%10;
switch (midNum){
case 0:
count+=highNum*factor;
break;
case 1:
count+=highNum*factor+lowNum+1;
break;
default:
count+=(highNum+1)*factor;
}
factor*=10;
}
return count;
}
很有意思的东西