using System; using System.IO; using System.Linq; using System.Collections.Generic; using System.Text; public class Program { public void Proc() { this.Target = long.Parse(Reader.ReadLine()); long ans = GetAns(this.Target, 0); Console.WriteLine(ans); } private long GetAns(long num, long subTotal) { if(num==1) { return 0; } long ans = long.MaxValue; if(num%2==0) { ans = GetAns(num / 2, subTotal + 1) + 1; } else { ans = GetAns(num + 1, subTotal + 1) + 1; } return ans; } private long Target; public class Reader { private static StringReader sr; public static bool IsDebug = false; public static string ReadLine() { if (IsDebug) { if (sr == null) { sr = new StringReader(InputText.Trim()); } return sr.ReadLine(); } else { return Console.ReadLine(); } } private static string InputText = @" 499211612 "; } public static void Main(string[] args) { #if DEBUG Reader.IsDebug = true; #endif Program prg = new Program(); prg.Proc(); } }