讨论 / 比枚举快很多的方法(c++)
pony 2016-07-30 16:26:08
点我顶贴 收藏 删除
#include<iostream>

using std::cin;

using std::cout;

int power(int x, int y) //计算幂的函数

{

int result{1};

for (int i{}; i < y; i++) result *= x;

return result;

}

int main()

{

int n{};

int x{};

cin >> n >> x;

int i{ 1 }; //算这是个几位数

while (n / power(10,i) >= 1) i++;

int sum{};

for (int j{ 1 }; j <= i; j++) //x在每个位数分别出现几次

{

sum += (n / power(10, j)) * power(10, j - 1);

if (x == 0) sum -= power(10, j - 1);

if (x < (n % power(10, j)) / power(10, j - 1)) sum += power(10, j - 1);

if (x == (n % power(10, j)) / power(10, j - 1)) sum += n % power(10, j - 1) + 1;

}

cout << sum; //输出

return 0;

}

#1 pony@2016-07-31 19:32:13
回复 删除
题目:

https://www.rqnoj.cn/problem/732

查看更多回复
提交回复