在一行上输入两个整数
。
在一行上输出一个整数,代表最小的包含数位
最多的斐波那契数。保证一定存在这样的数字。
5 2
2
该样例已在题目中加以解释。
30 6
6765
#include <bits/stdc++.h>
using namespace std;
signed main() {
int n, k;
cin >> n >> k;
vector<long long> fib(n + 1);
for (int i = 1; i <= n; i++) {
if (i <= 2) fib[i] = 1;
else fib[i] = fib[i - 1] + fib[i - 2];
}
long long ma = -0x3f3f3f3f3f3f3f3f, maid = 0;
for (int i = 1; i <= n; i++) {
long long x = fib[i], cnt = 0;
while (x) {
cnt += (x % 10 == k);
x /= 10;
}
if (cnt > ma) {
ma = cnt;
maid = fib[i];
}
}
cout << maid << '\n';
return 0;
}