我需要开发一个递归方法,允许用户输入两个数字(比如6和5)并给我一个这样的网格:
$ $ $ $ $
$ $ $ $ $
$ $ $ $ $
$ $ $ $ $
$ $ $ $ $
有5列6行。
非常感谢任何帮助。
答案 0 :(得分:0)
这是一个simlpe c#one。你必须将写行更改为java我猜,但它应该工作相同。
您将使用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);
}