【发布时间】:2018-05-19 10:24:13
【问题描述】:
这是我的代码:
public static void permutation(int n) {
String x="";
if(n==1) {
System.out.println(x+"1");
System.out.println(x+"3");
}else {
String temp=x;
System.out.print(temp+"1");permutation(n-1);
System.out.print(temp+"3");permutation(n-1);
}
}
我试图用我的大脑思考这个问题好几个小时。这个方法应该只接受一个 int(>=1);然后仅使用“1”和“3”显示所有排列,但保持与参数相同的长度。它让我得到了正确的排列数,但大多数值都是错误的。我不想从这个方法返回任何东西。该方法应该打印排列结果。
例如:如果我给这个方法一个整数“2”,它应该显示:
11
13
31
33
相反,我得到的是
11
3
31
3
【问题讨论】:
-
它不返回任何内容,因为您没有
return语句。 -
“方法不返回任何内容”是什么意思?您的方法声明为返回类型
void,因此它无法返回任何内容。您的意思是该方法不 print 任何东西吗?另外,您到底希望方法“返回”什么? -
向我们展示一些示例输入和输出
-
“我不想要这个方法的返回类型”没有说明任何事情,因为方法必须有一些 i> 返回类型(即使是
void)。所以你的问题仍然需要一些澄清。例如,您希望您的方法做什么(预期结果是什么,输入什么,以及您得到什么?)。 -
那些不是排列,更像是替换组合。另外,输出不应该是
11, 13, 31, 33吗?
标签: java recursion permutation