2013-12-10 60 views
0

我需要開發一個遞歸方法,將允許用戶輸入兩個數字(比方說,6和5),並給我爲此形狀的網格:遞歸方法:列和行(網格)

$ $ $ $ $

$ $ $ $ $

$ $ $ $ $

$ $ $ $ $

$ $ $ $ $

具有5列和6行的

任何幫助將不勝感激。

+0

語言是Java,到目前爲止我沒有試過的東西接近工作。我試圖根據我正在使用的書中的一些問題,但沒有運氣。 – Matt

+0

你給出的例子只有5行。它應該有6 –

回答

0

這是一個simlpe的c#一個這樣做。我想你必須改變寫入行,但它應該是一樣的。

你會用print_rec(4,2);調用它,它會調用另一個可以完成工作的遞歸調用。請注意,我們需要行1和列1,否則你會得到一個額外的(如果你比較0,你可以當你停止遞歸1,但它很混亂)。
另請注意,我們需要一個額外的變量來記住當前打印字符的位置。

public void print_rec (int rows, int columns { 
    rec1(rows-1,columns-1,columns-1); 
} 

public void recursive_print(int rows, int columns, int current) { 
    Console.Out.Write("#"); 
    if (rows==0 && current ==0) 
     return; 
    else if (current == 0) { 
    Console.Out.WriteLine(); 
     rec1 (rows-1, columns, columns);} 
    else 
     rec1 (rows, columns, current-1); 
}