上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
给定一个正整数n,如果n为偶数,将n替换为n/2;如果n为奇数,将n替换为n+1或n-1,那么将n转换为1,最少的替换次数为多少?
输入8,输出3,即8→4→2→1;输入7,输出4,即7→8→4→2→1,或者7→6→3→2→1。
输入:8
[8,4,2,1]
输出:3
输入:18
[18,9,8,4,2,1]
输出:5