排列.java
来自「数字的全排列问题」· Java 代码 · 共 59 行
JAVA
59 行
package 算法;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
public class 排列 {
static int num,cont=0;
public static void main(String [] args) throws IOException{
int i;
int a[] = new int[30];
System.out.println("请输入要进行全排列的数N(N<=9):");
//读取用户输入的信息
Reader reader = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(reader);
String str = br.readLine();
//字符转化为数字
num = Integer.parseInt(str);
for(i=1;i<=num;i++)
a[i]=i;
perm(a,1);
//打印总的排列个数
System.out.println("总共有"+cont+"种方法");
}
static int perm(int b[], int i){
int k,j,temp;
//如果i=用户输入的数
if(i==num){
//直接按顺序打印数组的值
for(k=1;k<=num;k++)
System.out.print(b[k]+" ");
System.out.println();
cont++;
}else
for(j=i;j<=num;j++){
//将b[i]与b[j]交换
temp=b[i];
b[i]=b[j];
b[j]=temp;
//进行下一次排列
perm(b,i+1);
// 再次将b[i]与b[j]交换
temp=b[i];
b[i]=b[j];
b[j]=temp;
}
return(0);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?