三、阅读程序-2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #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 的正整数。
