
java oop考试题 2 20
用户输入N要求输出1-N的全排列例如N=3123132213231312321求思路代码需求有注释重点是思路,还有人和我说这是递归,我不懂什么事递归,有懂的顺便讲下可好?...
用户输入N 要求输出1-N的全排列
例如 N=3
123 132 213 231 312 321
求思路 代码需求有注释 重点是思路,还有人和我说这是递归,我不懂什么事递归,有懂的顺便讲下可好? 展开
例如 N=3
123 132 213 231 312 321
求思路 代码需求有注释 重点是思路,还有人和我说这是递归,我不懂什么事递归,有懂的顺便讲下可好? 展开
1个回答
展开全部
package com;
/**
* <P>
* 全排列或全组合
*/
public class Premutation
{
public static void premutation(int n, int a[], int cur)
{
if(cur == n)
{
for(int i = 0; i < n; i++)
{
System.out.print(a[i] + " ");
}
System.out.println();
}
else
{
for(int i = 1; i <= n; i++)
{
boolean same = false;
for(int j = 0; j < cur; j++)
{
if(a[j] == i)
{
same = true;
}
}
if(!same)
{
a[cur] = i;
// 加上这个条件就是组合,否则就是排列
//if(cur < i)
{
premutation(n, a, cur + 1);
}
}
}
}
}
public static void main(String[] args)
{
int n = 3;
int a[] = new int[n];
premutation(n, a, 0);
}
}
更多追问追答
追问
求个思路啊 光看代码不友善
追答
你连递归都不知道,怎么跟你讲思路?
跟你讲了思路,你就会写么?
如果是这样,那你就可以自己完成了,也不缺别人的一点点的思路
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询