2016-08-13 4 views
0

私はJavaでメソッドを使用する方法を学んでいます。私は、collat​​zの推測を使用して1に到達するまでのステップ数を出力するメソッドを使用しようとしています。誰も私が方法を実行する方法をよりよく理解するのを助けることができますか?これは私がこれまで持っているものです。Collat​​z推測メソッド - Java

public static void main(String[] args) { 
    collatz();  
} 

public static void collatz(int n) { 
    n = 20; 
    int i = 0; 
    if (n == 1) {   
    } else if (n % 2 == 0) { 
     n = (n/2); 

    } else { 
    n = (3 * n + 1); 

    } 
    i++; 
System.out.println(i); 
} 
+0

働いている?コードを実行するとどうなりますか?このサイトの使い方を知るには、[help]にアクセスし、[ask]をお読みください。 –

+0

これはcollat​​z()のためコンパイルされません。値が渡されていません。 collat​​z(20)を実行する必要があります。 – EJoshuaS

答えて

0

私はあなたが構文(というよりも、アルゴリズム自体)について求めていることを理解したようなので、ここでは上記の別のバージョンがあります:

何ISN
public static void main(String[] args) { 
    // collatz has to be called with a value or it won't compile 
    collatz(20); 
} 

public static void collatz(int n) { 
    int i = 0; 
    // The following has to occur inside a loop or it'll only occur once 
    while (n > 1) 
    { 
    // The following is what's known as "ternary form" - if the first statement is true, it'll assign the first value. Otherwise it assigns the first value. 
    // For example, 
    // int a = (1 == 2 ? 10 : 20); 
    // will equal 20 
    n = (n % 2 == 0 ? 
      (n/2) : // This value will be assigned if n is even 
      (3 * n + 1)); // This value will be assigned if n is odd 
    i++; 
    } 
    System.out.println(i); 
} 
関連する問題