京东第二道题《神奇数》的非暴力解法!!!时间不够,只AC了10%,现在才做了出来
#include <iostream>
using namespace std;
bool Istwo(long long sum, long long cnt)
{
bool sta = false;
long long count = cnt * 10;
int datacnt = 0;
while (count > 0)
{
if ((count % 10) > (sum % 10))
datacnt++;
count /= 10;
sum /= 10;
}
if (datacnt % 2 == 0)
sta = true;
return sta;
}
int main()
{
long long n, m;
while (cin >> n >> m)
{
long long count = m / 11 - n / 11;
for (long long i = n / 11; i <= m / 11; i++)
if (Istwo(i * 11, i) == false)
count--;
if (n / 11 * 11 == n)
count++;
cout << count << endl;
}
return 0;
}