1. 将
2. 将
小O想知道,将
在一行上输入三个整数和
表示初始数字、目标数字和 可以除的数字。
在一行上输出一个正整数,表示将变成
至少需要多少次操作。
10 4 2
2
先将 10 除以 2 得到 5,再将 5 减去 1 得到 4,共需要 2 次操作。
def min_operations(n, m, k): if n <= m: return n - m count = 0 while n > m: if k == 1: count += (n - m) break remainder = n % k if remainder != 0: # 非整除场景:保持原有逻辑不变 if n - remainder <= m: count += (n - m) n = m else: count += remainder n -= remainder else: # 核心修正:预判整除结果是否小于m divided_n = n // k # 计算整除后的结果 if divided_n < m: # 若整除结果小于m,放弃整除,直接减到m count += (n - m) n = m # 更新n为m,终止后续循环 else: # 若整除结果大于等于m,再执行整除操作 count += 1 n = divided_n return count