您的位置:首页 > 编程语言 > C语言/C++

C++实现页码数字统计

2017-06-26 08:32 260 查看
#include<iostream>
#include<iomanip>
#include<cstdlib>
#include<ctime>
#include<cmath>
#include<vector>
#include<map>
#include<algorithm>
#include<string>
#include<sstream>

using namespace std;

int Str2Int(const string & s, int st, int ed)
{
int n = 0;
for (int i = st; i < ed; ++i) {
n = n * 10 + s[i]- '0';
}
return n;
}

int pos_power(int base, int ind) {
int res = 1;
for (int i = 0; i < ind; ++i)
res *= base;
return res;
}

int Count2(int n) {
int cnt = 0;
int ord = 0;

for (ord = 0; n / pos_power(10, ord) > 0; ++ord) {
int bit = n / pos_power(10, ord) % 10;

cnt += bit*ord* pos_power(10, ord-1);

if (bit > 2)
cnt += pos_power(10, ord);
else if (bit == 2)
cnt += n % pos_power(10, ord) + 1;
}

return cnt;
}

int main(void) {
int L, R;
while (cin >> L >> R) {
//cout << Count2(R) << endl;
//cout << Count2(R) << " " << Count2(L - 1) << endl;
cout << (Count2(R) - Count2(L - 1)) << endl;
}
return 0;
}
參考链接: <a target=_blank href="http://www.cppblog.com/AllKillMan/archive/2011/08/18/153798.html">http://www.cppblog.com/AllKillMan/archive/2011/08/18/153798.html</a>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: