在一行上输入两个整数
。
在一行上输出一个整数,代表最小的包含数位
最多的斐波那契数。保证一定存在这样的数字。
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; }