2020 年第 22 题判断题枚举与模拟普及/提高
程序(二,k进制计数器进位次数):k=1时len是否等于n
题目
阅读下面的程序,回答问题。假设输入的n是不超过2^62的正整数,k是不超过10000的正整数。 #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; } 判断题:若k=1,则输出ans时,len=n。( )
考点拆解
程序阅读与结果判断
易错提醒
阅读程序题要按变量变化顺序手推,不要跳步
选择题要检查单位、边界和题目中的否定词