在所有各大网站的题解里,都可以看到这样的一串代码:
while(b!=0){
c=b%10;
b=b/10;
if(c==x)
t++;
}
真的其他的代码了吗?
突然 我看到了一个数值范围:
1≤ n ≤ 1000 0000 ≤ x ≤ 91 ≤ n ≤ 1000 0000 ≤ x ≤ 9
只要不嫌麻烦,我们可以暴力的将这个打出来
主要逻辑代码如下:
int jishu(int n, int x) {
int sum = 0;
for (int i = 1; i <= n; ++i) {
if (i >= 1000000 && i / 1000000 == x) sum++;
if (i >= 100000 && i / 100000 % 10 == x) sum++;
if (i >= 10000 && i / 10000 % 10 == x) sum++;
if (i >= 1000 && i / 1000 % 10 == x) sum++;
if (i >= 100 && i / 100 % 10 == x) sum++;
if (i >= 10 && i / 10 % 10 == x) sum++;
if (i % 10 == x) sum++;
}
cout << sum;
}
这个条件就好了呢( ఠൠఠ )ノ
具体的代码如下:
#include <iostream>
using namespace std;
int n, x;
int jishu(int n, int x) {
int sum = 0;
for (int i = 1; i <= n; ++i) {
if (i >= 1000000 && i / 1000000 == x) sum++;
if (i >= 100000 && i / 100000 % 10 == x) sum++;
if (i >= 10000 && i / 10000 % 10 == x) sum++;
if (i >= 1000 && i / 1000 % 10 == x) sum++;
if (i >= 100 && i / 100 % 10 == x) sum++;
if (i >= 10 && i / 10 % 10 == x) sum++;
if (i % 10 == x) sum++;
}
cout << sum;
}
int main()
{
cin >> n >> x;
jishu(n, x);
return 0;
}