class n) using count power track algo name
- #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>
C++ 实现页码数字统计
来源: http://www.bubuko.com/infodetail-2138375.html