下面代码实现了计算 的快速幂算法,该算法体现的编程思想是( )。 def power(x, n): if n == 0: return 1 res = power(x, n // 2) if n % 2 == 0: return res * res else: return res * res * x
A:枚举
B:贪心
C:分治
D:模拟
正确答案:C
答案解析
函数通过将指数n不断除以2,将原问题分解为规模更小的子问题。当n为偶数时,x^n可表示为(x^(n/2))^2;当n为奇数时,可表示为x * (x^(n//2))^2。每次递归调用处理一个子问题,并在回溯过程中合并结果。该过程将原问题拆解为若干结构相同、规模更小的子问题,利用递归求解,最终组合得到原问题的解。算法的时间复杂度由线性降为对数级别,核心在于将大规模幂运算转化为重复的平方操作与少量乘法操作的组合。
试卷来源:202606 CCF-GESP编程能力等级认证Python五级真题