2015-04-29 146 views
-2

我想在我的課堂中使用Java中的遞歸方法作業。我們得到了每種情況的回報,以及測試方法的用途。Java中的遞歸方法,無效AssignmentOperator

但是,它一直告訴我方法中的if/else語句中的(r-1)和(p-1)具有無效的AssignmentOperator。

我試圖改變的方法的返回類型,有語句的結構混亂周圍,等..

這裏是我的代碼:

public static void main(String[] args) { 

     recursiveAlgorithm(0, 0); 
     recursiveAlgorithm(0, 1); 
     recursiveAlgorithm(1, 1); 
     recursiveAlgorithm(1, 2); 
     recursiveAlgorithm(1, 3); 
     recursiveAlgorithm(2, 2); 
     recursiveAlgorithm(3, 2); 


} 

    public static int recursiveAlgorithm(int r, int p) { 

     if (r == 0) { 
      return p + 1; 
     } 

     if (p == 0){ 
      return recursiveAlgorithm(r – 1, 1); 
     } 

     else { 
      return recursiveAlgorithm(r – 1, recursiveAlgorithm(r, p – 1)); 
     } 

    } 

我不知道是什麼我做錯了,我確定它與我的語法有關,但我不知道還有什麼可以嘗試的。任何幫助將非常,非常感謝。

錯誤:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
Syntax error on token "Invalid Character", invalid AssignmentOperator 
Syntax error on token "Invalid Character", invalid AssignmentOperator 
Syntax error on token "Invalid Character", invalid AssignmentOperator 

at javaproject.Java_Recursion.recursiveAlgorithm(Java_Recursion.java:25) 
at morris_brittany.Java_Recursion.main(Java_Recursion.java:7) 
+0

你能顯示你的實際錯誤堆棧跟蹤嗎? – RaGe

+1

什麼是錯誤,什麼是'csc2650Algorithm'方法? – Forseth11

+0

對不起,我忘了在發佈方法時更改方法中的名稱。唯一的方法是遞歸算法。 – crackedact0r

回答

0

這樣做:

public static void main(String[] args) { 

    recursiveAlgorithm(0, 0); 
    recursiveAlgorithm(0, 1); 
    recursiveAlgorithm(1, 1); 
    recursiveAlgorithm(1, 2); 
    recursiveAlgorithm(1, 3); 
    recursiveAlgorithm(2, 2); 
    recursiveAlgorithm(3, 2); 

}

public static int recursiveAlgorithm(int r, int p) { 

    if (r == 0) { 
     return p + 1; 
    } 

    if (p == 0){ 
     return recursiveAlgorithm(r - 1, 1); 
    } 

    else { 
     return recursiveAlgorithm(r - 1, recursiveAlgorithm(r, p - 1)); 
    } 

} 

的問題是你的-是一個不同的性格比你的鍵盤上的減號。我不知道爲什麼你把那種角色放在那裏,但我的月食說這個角色不是- 你可以使用this並且看到複製這個-看看他們是真的不同。