Python算法指南:程序员经典算法分析与实现
上QQ阅读APP看书,第一时间看更新

例12 整数替换

1. 问题描述

给定一个正整数n,如果n为偶数,将n替换为n/2;如果n为奇数,将n替换为n+1或n-1,那么将n转换为1,最少的替换次数为多少?

2. 问题示例

输入8,输出3,即8→4→2→1;输入7,输出4,即7→8→4→2→1,或者7→6→3→2→1。

3. 代码实现

4. 运行结果

输入:8

[8,4,2,1]

输出:3

输入:18

[18,9,8,4,2,1]

输出:5