2012-03-10 14 views
0

再帰的メソッドを使用しながら、すべての要素を配列に追加しようとしています。しかし、私はエラーが発生するので、私はメソッドを実行することはできません。だから、私は静的メソッドでパラメータを使用しているので、そこに私のコードに基づいて実行する方法はありますか?Javaで静的な再帰メソッドを呼び出すときに問題が発生しました

import java.util.Scanner; 
public class Harro { 
    public static void main(String[] args) { 
     input(); 
    } 

    private static void input() { 
     Scanner scanner = new Scanner(System.in); 
     System.out.print("Lower bound: "); 
     int lower = scanner.nextInt(); 
     System.out.print("Upper bound: "); 
     int upper = scanner.nextInt(); 
     arrayForm(upper, lower); 
    } 

    private static void arrayForm(int upper, int lower) { 
     int b = 0; 
     int a = Math.abs(lower) + Math.abs(upper); 
     int array[] = new int[a]; 
     for (int i = 0; i < array.length; i++) { 
      array[i] = lower + i; 
     } 
     summation(array[], b); 
    } 

    public static int summation(int array[], int b) { 
     if (b > array.length) { 
      System.out.println("Cannot continue"); 
      return 0; 
     } else{ 
      int result = array[b] + summation(array, b + 1); 
      System.out.println("recursion call: " + b); 
      System.out.println("sum: " + result); 
      System.out.println("parameter 1: " + array[b]); 
      System.out.println("parameter 2: " + array[b + 1]); 
      return result; 
     } 
    } 
} 
+0

コードを少し整形してください。 – m0skit0

+0

エラーは何ですか? – paislee

+0

私は集計(array []、b);を持つ '.class expected'を受け取ります。私は何か間違っているのですか? – Lafret

答えて

3

変更

summation(array, b); 

[]にこのライン

summation(array[], b); 

は、あなただけの識別子を必要とし、配列型を表します。

+0

ええ、[]で配列変数を呼び出さないでください – Chan

0
private static void arrayForm(int upper, int lower) 
    { 
    int b = 0; 
     int a = Math.abs(lower) + Math.abs(upper); 
    int array[] = new int[a]; 
     for (int i = 0; i < array.length; i++) 
    { 
     array[i] = lower + i; 
    } 
    summation(array, b); 
    } 

コンパイルエラーがその合計呼び出しにありました。あなたのコードはコンパイルされましたが、まだいくつかのランタイムエラーがあります

+0

はい、私はそれについて何ができるかを見ています。 – Lafret

関連する問題