java递归打印数,仅含1个参数
我想打印如下内容:
5
54
543
5432
54321
我做了一个程序,但它不是递归递减的:
public static void main(String[] args){
func(5);
}
public static String func(int num){
String temp = "";
if(num == 0){
return "";
}
temp = temp + num;
System.out.println(temp);
return temp + func(num-1);
}
我上面的程序打印如下:
5
4
3
2
1
问题:我可以只递归使用1个参数(num)吗?因为我可以通过使用“”和num作为参数来制作一个工作程序。我只想要一个。我也在避免递归方法中的for循环。可能吗? 我已经想了好几天的解决办法,但似乎想不起来
# 1 楼答案
您可以使用公共的单参数1和私有的双参数1
# 2 楼答案
您需要跟踪递归函数之外的
String temp
(因为您不想传递它)你可以这样做:
或者像这样:
# 3 楼答案
你确定不想使用两个参数吗?因为这样的事情是可能的
只有一个参数的另一个想法是:
但是这个函数只适用于小于10的整数。因此,我建议使用带有两个参数的函数,例如上面的一个
如果你已经有了一个只有一个参数的程序,那就使用包装器函数
# 4 楼答案
每次通话时,您都会将temp初始化为空
# 5 楼答案
把绳子传过去就行了
# 6 楼答案
单参数版本(已更新):
它执行您描述的操作,并以字符串形式返回最后一个值