读书人

lt;找工作 3gt;统计1到N中1出现的个数

发布时间: 2012-12-25 16:18:28 作者: rapoo

<找工作 三>统计1到N中1出现的个数

#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;}
?很有意思的东西

读书人网 >编程

热点推荐