C++实现页码数字统计

#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>

原文链接: https://www.cnblogs.com/mfmdaoyou/p/7078924.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++实现页码数字统计

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/255953

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 上午9:37
下一篇 2023年2月14日 上午9:37

相关推荐