- #include <iostream>
- using namespace std;
- long long n, ans;
- int k, len;
- long long d[1000000];
- int main() {
- cin >> n >> k;
- d[0] = 0;
- len = 1;
- ans = 0;
- for (long long i = 0; i < n; ++i) {
- ++d[0];
- for (int j = 0; j + 1 < len; ++j) {
- if (d[j] == k) {
- d[j] = 0;
- d[j + 1] += 1;
- ++ans;
- }
- }
- if (d[len - 1] == k) {
- d[len - 1] = 0;
- d[len] = 1;
- ++len;
- ++ans;
- }
- }
- cout << ans << endl;
- return 0;
- }
假设输入的 n 是不超过262 的正整数,k 都是不超过 10000 的正整数。
2)判断:若 k>1,则输出 ans 时,len 一定小于 n。( )