3n+1
Pick a positive integer n. If it is odd, multiply it by three and then add one. Otherwise (if it is even), divide it by two. The positive integer obtained is the new n, and this procedure is repeated.
It is believed that n will eventually become 1 (this is called the Collatz conjecture.) Computers have checked that any value of n less than 5×1018 does, indeed, eventually become 1 if this procedure is applied enough times.
You will be given the value of n. Determine how many times this procedure must be applied before n becomes 1.
Input
The initial value of n.Output
The number of operations we have to perform on n before it becomes 1.Sample Input
7
Sample Output
16
Explanation
n will go through these steps:7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
Constraints
Any value of n, initial or intermediate, will be less than 231.
All Submissions
Best Solutions
Point Value: 5
Time Limit: 2.00s
Memory Limit: 16M
Added: Feb 19, 2010
Languages Allowed:
C++03, PAS, C, HASK, ASM, RUBY, PYTH2, JAVA, PHP, SCM, CAML, PERL, C#, C++11, PYTH3
Comments (Search)
I used Java and copied the code onto the project name.
However, it still gives me a compile error saying that "public class 3nplus1{" is incorrect.
We're working on a way to resolve this, but for now, this problem cannot be done in Java.
Thanks
And the problem is still not fixed.
3nplus1.cpp:1: error: ‘import’ does not name a type
3nplus1.cpp:2: error: expected unqualified-id before ‘public’
can you please help me? i really want to pass this problem!
at System.Security.Cryptography.RNGCryptoServiceProvider.Check () [0x00000]
at System.Security.Cryptography.RNGCryptoServiceProvider..ctor () [0x00000]
at System.Guid.FastNewGuidArray () [0x00000]
at System.Reflection.Emit.ModuleBuilder..ctor (System.Reflection.Emit.AssemblyBuilder assb, System.String name, System.String fullyqname, Boolean emitSymbolInfo, Boolean transient) [0x00000]
at System.Reflection.Emit.AssemblyBuilder.DefineDynamicModule (System.String name, System.String fileName, Boolean emitSymbolInfo, Boolean transient) [0x00000]
at System.Reflection.Emit.AssemblyBuilder.DefineDynamicModule (System.String name, System.String fileName, Boolean emitSymbolInfo) [0x00000]
at Mono.CSharp.CodeGen.Init (System.String name, System.String output, Boolean want_debugging_support) [0x00000]
at Mono.CSharp.Driver.Compile () [0x00000]
at Mono.CSharp.Driver.Main (System.String[] args) [0x00000]