// 非递归写法 int func(int n) { int count = 0; while(n > 1) { if(n % 2 == 0) n >>= 1; else if(n == 3) n--; else { if(n&2) // 二进制是******11时 n++; else // 二进制是******01时 n--; } count++; } return count; }